在分词方面 我最终选用了JIEBA分词:
我通过AINLP公众号进行了对比 ,对比结果如下:
通过其分词结果可以看出效果比较好的有:
jieba, HANLP, BaiduLac
之前笔者尝试过斯坦福nlp 由于其在中文分词的里面分的将词汇分的过于精细,导致其分词效果到达不了我们想要的结果,最终笔者选择了jieba。
ps: HANLP感觉很是很棒的, 大家也可试一下。
在这里给大家推荐一个中文分局的方法:
用python进行精细中文分句(基于正则表达式)
那么我们继续进行下一步的步骤。我们首先将其我们分好的句子储存为字典,方便以后的调用:
path = "E:/pythoncode/test-corpus/corpus" text1 = rtxt_STV(path) dictionary = corpora.Dictionary(text1) dictionary.save(os.path.join(TEMP_FOLDER, 'deerwester.dict')) # 保存字典,以备后续查找之用 print(dictionary)
同时我们可以观察不同字在字典中的位置:
print(dictionary.token2id)
我们在进行通过计算词频等都需要进行词向量的转换
那么词向量是什么:
(1, 1)
第一个元素对应字典中的词汇ID,第二个条目对应于该词汇的计数
在上文中我们已经学习了如何将文档进行分词以及如何将文本中的分词结果存储到字典,并且将其进行向量化。
那么我们利用这些结果首先可以做一些比较有趣的事情,比如说词云:
如果我们想做词云那么python的wordcloud 是一个很好地工具包,我们可以通过wordcloud 生成类似上文的词云图,也可以生成自己喜欢的词云图样式,其说明文档如下:
WordCloud for Python documentation
我们可以通过定义一个方法进行词云图的批量生成,我想把每个文档生成一个词云图并且将某个文档目录下所有文档内容汇总并生成一个词云图,代码如下:
def photo():
font = "C:WindowsFontsSTFANGSO.TTF"
# font 在windows 自带字体仿宋
wc = WordCloud(
font_path = font,
# 设置字体,不指定就会出现乱码
# 设置背景色
# 最大字体
background_color='white',
# 设置背景宽
width=1920,
# 设置背景高
height=1080,
max_font_size=200,
# 最小字体
min_font_size=30,
mode='RGBA'
#colormap='pink'
)
poli_all = str(text1)
wc.generate(poli_all)
wc.to_file(r"D:wallpaperall.png")
for i in range(len(text1)):
type(text1[i])
text2 = text1[i]
a = list(set(text2))
b = str(a)
wc.generate(b)
plt.imshow(wc)
wc.to_file(r"D:wallpaperBPM"+str(i) + ".png")
photo()



