NLP笔记2_自定义词性与字典的实现
怎么实现自定义词性,哎呀
愁。看了一篇论文,作者是使用LTP实现的,但是作者没有仔细说明如何实现。在网上也看其他的博客,但是暂时还是找不到相对应较好的解决方法。希望其他博友如果知道,请指点一二。(未来还得继续学习)
LTP没有办法实现,我就转向
简单的jieba
了,想说jieba一点也不结巴
。
Step1:准备自己的字典
为了作业,收集了一些词汇,准备了自己的一小部分字典,当然它还在成长中.....在第一次,我整理了796个词。
下面是部分截图:
字典的格式:词+词频+词性
这里要注意词,词频与词性之间是用一个空格隔开。
Step2:分词与词性标注python实现
# 导入第三方库
import jieba
import jieba.posseg
import jieba.analyse
# 测试的文本
text = "1号楼在的哪里,数学分析的学生是应该在那里报账嘛"
# 导入自定义词典
jieba.load_userdict("dict.txt")
# 进行精确模式分词
data = jieba.cut(text, cut_all=False)
print(u"[原始文本]: ", text)
print(u"[精确模式]: ", " ".join(data))
# 词性标注
sentence_seged = jieba.posseg.cut(text)
outstr = ''
for x in sentence_seged:
outstr += "{}({}) ".format(x.word, x.flag)
print(u'[词性标注]:', outstr)
运行结果
[原始文本]: 1号楼在的哪里,数学分析的学生是应该在那里报账嘛
[精确模式]: 1号楼 在 的 哪里 , 数学分析 的 学生 是 应该 在 那里 报账 嘛
[词性标注]: 1号楼(xd) 在(p) 的(uj) 哪里(yw) ,(x) 数学分析(cs) 的(uj) 学生(n) 是(v) 应该(v) 在(p) 那里(r) 报账(sw) 嘛(yw)
可以看到效果还是很不错的。