现有技术:
1.字符串匹配法
将一串文本中的文字片段和已有的词典进行匹配,匹配到了,就作为一个分词的结果。
缺点:无法处理歧义切分、无法识别未登录的词、无法识别命名实体
解决方案:正向最大匹配、逆向最大匹配、最少分词结果、全切分后选择路径、改进扫描方式
2.基于统计的序列标记法
使用到的方法:隐马尔科夫模型、条件随记场等
缺点:不稳定
优点:识别未登录的词
3.深度学习
使用到的方法:word2vec词向量、seq2seq等
各种歧义例子
1:结婚的和尚未结婚的和尚
结婚、的、和尚、未、结婚、的、和尚
结婚、的、和、尚未、结婚、的、和尚
以上虽然有2中分词结果,但表达的含义都是相同的,个人觉得都是正确。
说明一句话可以有2种正确的分词结果。
2:结婚的和尚未成年的人
结婚、的、和尚、未、成年、的、人
结婚、的、和、尚未、成年、的、人
以上有2中分词结果,但表达的含义不同。需要根据上下文来分词。
3:你把门把手松开。
A.你、把门、把、手、松开
B.你、把、门把手、松开
C.你、把门、把手、松开
以上有3种分词结果,AC有把门的情景,且A重点在手,而C则重在把手。B重在门把手。
具体哪种正确,需要根据上下文才能得出相对正确的结果。比如这样:
A.你、把门、把、手、松开(手握得太紧了)
B.你、把、门把手、松开(门把手坏了)
C.你、把门、把手、松开(把手坏了)
如何计算分词的准确率、召回率、精准率
混淆矩阵:
真实值\预测值 | Positive(1) | Negative(0) |
Positive(1) | True Positive (TP) | False Negative (FN) |
Negative(0) | False Positive (FP) | True Negative (TN) |
- True Positive(TP):表示将正样本预测为正样本,即预测正确;
- False Positive(FP):表示将负样本预测为正样本,即预测错误;
- False Negative(FN):表示将正样本预测为负样本,即预测错误;
- True Negative(TN):表示将负样本预测为负样本,即预测正确;
精准率(Precision)又称查准率:预测对的正样本数占整个预测为正样本数的比重
Precision = TP/(TP+FP)
准确率(Accuracy):预测某类正确的样本比例
召回率(Recall)又称查全率:预测对的正样本占整个真实正样本的比重,
假设1000条数据,有正确的数据800条,正样本,有不正确的数据200条,负样本。
现在我测试这1000数据,结果为TP=700,FP=40,TN=160,FN=100
准确率为:(700+160)/1000 = 860/1000 = 86%
精确率为:700/(700+40) = 94.6%
召回率为:700/(700+100) = 700/800 = 87.5%
实际应用:
此时的精确率为:3/5 =0.6 ,召回率为:3/6 =0.5
参考资料:
这里注明以上资料中, Recall = 6/10 = 0.6与precision=6/13=0.4515写反了