隐马尔可夫(HMM)实现中文词性标注
词性标注
词性标注(Part-of-Speech tagging 或 POS tagging)是指对于句子中的每个词都指派一个合适的词性,也就是要确定每个词是名词、动词、形容词或其他词性的过程,又称词类标注或者简称标注。
词性标注是自然语言处理中的一项基础任务,在语音识别、信息检索及自然语言处理的许多领域都发挥着重要的作用。
因此,在关于自然语言处理的书籍中,都会将词性标注单列一章重点...
2020-01-28 02:09:32 |
Math
隐马尔可夫(HMM)实现中文分词
中文分词
HMM 的应用场景有很多,我们首先来谈一谈如何实现中文分词。
本文假设读者已经对HMM有所了解,很多地方会直接提出相关概念。
理解前向算法,维特比算法是关键,关于无监督学习HMM的Baum-Welch算法在本文中没有使用,至少了解它的作用即可。
中文分词的难处
总所周知,在汉语中,词与词之间不存在分隔符(英文中,词与词之间用空格分隔,这是天然的分词标记),词本身也缺乏明显...
2020-01-28 02:09:32 |
Math
一些有趣的考验反应能力的题目
序章
收集一些有趣的小问题,活跃一些思维。
一道著名的毒酒问题
题目
有1000 桶酒,其中1 桶有毒。而一旦吃了,毒性会在1 周后发作。
现在我们用小老鼠做实验,要在1 周内找出那桶毒酒,问最少需要多少老鼠。
思路
需要10只老鼠就可以。
10只老鼠按从左到右的顺序编好号1-10,同时每桶酒通过二进制的方式编上号。编号需要写满10位,不够十位数的前面添度0补满。分别取数位和...
2020-01-23 02:09:32 |
Interview
leetcode 716 最大栈
题目
设计一个最大栈数据结构,既支持栈操作,又支持查找栈中最大元素。
实现 MaxStack 类:
MaxStack() 初始化栈对象
void push(int x) 将元素 x 压入栈中。
int pop() 移除栈顶元素并返回这个元素。
int top() 返回栈顶元素,无需移除。
int peekMax() 检索并返回栈中最大元素,无需移除。
int popMax() 检索并返...
2020-01-23 02:09:32 |
Algorithm
leetcode 681 最近时刻 next-closest-time [Medium]
题目
681. 最近时刻
给定一个”HH:MM”格式的时间,重复使用这些数字,返回下一个最近的时间。每个数字可以被重复使用任意次。
保证输入的时间都是有效的。例如,”01:34”,”12:09” 都是有效的,而”1:34”,”12:9”都不是有效的时间。
例1:
输入: “19:34”
输出: “19:39”
解释:
从1,9,3,4中选出的下一个最近的时间是19:39,它是...
2020-01-23 02:09:32 |
Algorithm
leetcode 681 最近时刻 next-closest-time [Medium]
题目
681. 最近时刻
给定一个”HH:MM”格式的时间,重复使用这些数字,返回下一个最近的时间。每个数字可以被重复使用任意次。
保证输入的时间都是有效的。例如,”01:34”,”12:09” 都是有效的,而”1:34”,”12:9”都不是有效的时间。
例1:
输入: “19:34”
输出: “19:39”
解释:
从1,9,3,4中选出的下一个最近的时间是19:39,它是...
2020-01-23 02:09:32 |
Algorithm
leetcode 1275. 找出井字棋的获胜者
题目
井字棋 是由两个玩家 A 和 B 在 3 x 3 的棋盘上进行的游戏。井字棋游戏的规则如下:
玩家轮流将棋子放在空方格 (‘ ‘) 上。
第一个玩家 A 总是用 ‘X’ 作为棋子,而第二个玩家 B 总是用 ‘O’ 作为棋子。
‘X’ 和 ‘O’ 只能放在空方格中,而不能放在已经被占用的方格上。
只要有 3 个相同的(非空)棋子排成一条直线(行、列、对角线)时,游戏结束。
如果所有方...
2020-01-23 02:09:32 |
Algorithm
leetcode 253 [LeetCode] 253. Meeting Rooms II
题目
[LeetCode] 253. Meeting Rooms II
Given an array of meeting time intervals intervals where intervals[i] = [starti, endi], return the minimum number of conference rooms required.
Example 1:
Inpu...
2020-01-23 02:09:32 |
Algorithm