NLP自然语言处理工具

NLP自然语言处理工具

  • Gensim
  • 中文分词jieba

Gensim

Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。
它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,
支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口

大家通过官网可以很容易找到自己需要的代码,尤其是安装问题。之前我遇到使用pip install --upgrade gensim安装后,出现DLL无法查找到的问题

from gensim.models.fasttext_corpusfile import train_epoch_sg, train_epoch_cbow
ImportError: DLL load failed: 找不到指定的模块。

从百度的解决方案基本都是

(1)先用pip uninstall +包名命令依次将numpy,scipy,gensim卸载。
(2)再按numpy,scipy,gensim顺序依次安装,能够解决这一问题

但对于已经安装了conda的我来说,应该是numpy,scipy,gensim的版本或者缺少包导致的,于是我上了官网,在官网中找到了正确的安装姿势

conda install -c conda-forge gensim

关于方法的使用,也可以参考官网
官网:https://radimrehurek.com/gensim/
也可以参考text similarity的GitHub上的方案
https://github.com/adsieg/text_similarity
还可以参考NLP Town的相关文章
http://nlp.town/blog/sentence-similarity/

中文分词jieba

自然语言处理中,中文的分词与英文的区别比较大。中文一般采用语料库进行分词匹配,而jieba虽然已经很长时间不更新了,最近试用了一下,分词效果还可以,可以作为入门的分词工具。
安装采用

pip install jieba
当然也可以先下载 http://pypi.python.org/pypi/jieba/
然后解压,运行 python setup.py install

安装过程中一般不会遇到什么困难,访问官方的文档是github.com/fxsjy/jieba
不过因为工具本身维护的关系,相关的API文档解释有点简单,主要还是通过同步源码,利用其中的test用例来了解其用法。
包括在test中用到百度的飞桨paddlepaddlehttps://www.paddlepaddle.org.cn/,我对这个深度学习平台不太了解,后面还是要找机会了解一下。
jieba的lcut或者cut方法,对于中文的标点、常用词都会分解出来,也就是说可以还原成原句子,但是不利于做特征值提取

result = jieba.lcut("这是一个伸手不见五指的黑夜。我叫孙悟空,我爱北京,我爱Python和C++。")
print(result)
结果
['这是', '一个', '伸手不见五指', '的', '黑夜', '。', '我', '叫', '孙悟空', ',', '我', '爱', '北京', ',', '我', '爱', 'Python', '和', 'C++', '。']

但是利用jieba的analyse解析出来的更合适做特征值提取

import jieba.posseg as pseg
tags = jieba.analyse.extract_tags("这是2002一个伸手不见五指的黑夜。我叫孙悟空,我爱北京,我爱Python和C++。")
print(tags)
结果['2002', 'Python', 'C++', '伸手不见五指', '孙悟空', '黑夜', '北京', '这是', '一个']

利用collections可以计算词频

import collections
c = collections.Counter(tags)

你可能感兴趣的:(NLP,自然语言处理,python,深度学习)