自然语言处理(一)——中英文分词

版权声明:南木的博客 https://blog.csdn.net/Godsolve/article/details/90522525


中英文分词工具有很多,今天我们来使用 Jieba分词SnowNlp分词nltk分词thunlp分词NLPIR分词Stanford分词等六种分词工具来对给定中英文文本进行分词。

一、Jieba分词

结巴分词是用于中文分词的分词工具,安装与使用都比较容易掌握,而且结巴分词支持三种分词模式:

  • 精确模式,试图将句子最精确地切开,适合文本分析;
  • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

这次实验我就要使用三种不同的模式,来对实验文件内的中文文档内容进行分词。

分词结果如下:
在这里插入图片描述
但是可以发现,有些词语分词不是很好,例如“神丹牌”、“土鸡蛋”等,这时就需要自定义词典来进行分词。
所谓自定义词典,就是开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率。

用法: jieba.load_userdict(file_name)
file_name 为文件类对象或自定义词典的路径

词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。

词频省略时使用自动计算的能保证分出该词的词频。
自定义词典为:
在这里插入图片描述
使用词典后的输出结果为:
在这里插入图片描述

二、SnowNlp分词

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,这个类库可以做的事情很多,例如中午分词、词性标注、情感分析、文本分类、文本相似等等十多种功能,而这次我要用的仅仅是最简单的分词功能,对中文文本进行分词之后的结果为:
在这里插入图片描述
但是可以看到,和Jieba分词未使用自定义字典前有意义的情况,就是不常见词的分词不够准确,例如“神丹牌”、“土鸡蛋”等。

三、nltk分词

NLTK是一个高效的Python构建的平台,用来处理自然语言数据,它提供了易于使用的接口,通过这些接口可以访问超过50个语料库和词汇资源(如WordNet),还有一套用于分类、标记化、词干标记、解析和语义推理的文本处理库。
Nltk的安装很简单,只需要pip就可以完成,但是在装上nltk之后,它里面的不同包的安装又变成了另一个难题,因为里面包太多了,不同功能需要不同的包,而我的选择就是——全装了,因为我也不知道哪个功能具体使用哪个包来做。

用nltk对文本进行分词的结果为:
在这里插入图片描述

四、thunlp分词

THULAC(THU Lexical Analyzer for Chinese)是由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。它具有能力强、准确率高、速度较快等特点。

使用thulac进行分词的结果为:
在这里插入图片描述
可以发现,在使用这个类库进行分词操作时,得到的分词准确度是比之前的中文分词工具要高的(包括未使用自定义词典的jieba),类似“土鸡蛋”、“神丹牌”等不常见词语也被很好地分了开来。

五、nlpIR分词

在使用NLPIR分词方法时,需要注意授权是否过期,而解决方法就是去下载license以更新授权。

在调试好之后,分词结果为:
在这里插入图片描述
不仅实现了分词功能,还顺便完成了词性标注,并且分词结果也不算很差。

六、Stanford分词

斯坦福大学的分词工具,在使用之前要下载一些比较大的包,所以在使用中遇到了一些问题,不过都是可以通过百度解决的。

分词结果为:
在这里插入图片描述

七、结论

不同的分词工具都有着自己的特点,使用条件不同,效果也不大相同。

五款中文分词工具的比较,尝试的有Jieba,SnowNLP,thulac(清华大学自然语言处理与社会人文计算实验室),StanfordCoreNLP,pyltp(哈工大语言云),环境是Win10,anaconda3.7。

只有Thulac的结果比较特别,StanfordCoreNLP的运行占用大量内存和CPU,尝试另一句话‘这本书很不错’,jieba无法分出‘本’,其他都可以完整分词,不过StanfordCoreNLP依然占用大量内存和CPU。

代码和文本太多,上传太麻烦,如果需要请点击这里下载

附录 · 分词工具推荐

中文分词工具

  1. Jieba
  2. SnowNLP
  3. THULAC
  4. NLPIR
    NLPIR
  5. StanfordCoreNLP
  6. HanLP

英文分词工具

  1. nltk
    nltk
    nltk
  2. Spacy
    Spacy
  3. StanfordCoreNLP

微信公众号

同时也欢迎各位关注我的微信公众号 南木的下午茶

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Godsolve/article/details/90522525