中文分词及词性标注工具使用
Posted IT2Driver
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中文分词及词性标注工具使用相关的知识,希望对你有一定的参考价值。
结巴分词效果最好
结巴分词:采菊/nr 东篱/ns 下/f ,/x 悠然/z 见/v 南山/ns !/x
SnowNLP:采菊/t 东/f 篱/vd 下/f ,/w 悠然见/nr 南山/nr !/w
pkused:采菊东篱/v 下/f ,/w 悠然/ad 见/v 南山/ns !/w
THULAC:采菊/v 东篱/n 下/f ,/w 悠然见南山/id !/w
结巴分词
In [1]:
import logging
import chardet
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
In [ ]:
!pip3 install jieba -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
In [2]:
aistr = '采菊东篱下,悠然见南山!';
In [3]:
import jieba.posseg
posseg_list = jieba.posseg.cut(aistr)
print(' '.join('%s/%s' % (word, tag) for (word, tag) in posseg_list))
Building prefix dict from the default dictionary ...
2019-07-10 07:22:32,442 : DEBUG : Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
2019-07-10 07:22:32,447 : DEBUG : Loading model from cache /tmp/jieba.cache
Loading model cost 1.099 seconds.
2019-07-10 07:22:33,546 : DEBUG : Loading model cost 1.099 seconds.
Prefix dict has been built succesfully.
2019-07-10 07:22:33,548 : DEBUG : Prefix dict has been built succesfully.
采菊/nr 东篱/ns 下/f ,/x 悠然/z 见/v 南山/ns !/x
SnowNLP
In [ ]:
!pip install snownlp -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
特点:
中文分词(Character-Based Generative Model)
词性标注(TnT 3-gram 隐马)
情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
文本分类(Naive Bayes)
转换成拼音(Trie树实现的最大匹配)
繁体转简体(Trie树实现的最大匹配)
提取文本关键词(TextRank算法)
提取文本摘要(TextRank算法)
tf,idf
Tokenization(分割成句子)
文本相似(BM25)
支持python3
In [4]:
from snownlp import SnowNLP
snow_result = SnowNLP(aistr)
print(' '.join('%s/%s' % (word, tag) for (word, tag) in snow_result.tags))
采菊/t 东/f 篱/vd 下/f ,/w 悠然见/nr 南山/nr !/w
pkused
pkuseg具有如下几个特点:
多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。我们目前支持了新闻领域,网络领域,医药领域,旅游领域,以及混合领域的分词预训练模型。在使用中,如果用户明确待分词的领域,可加载对应的模型进行分词。如果用户无法确定具体领域,推荐使用在混合领域上训练的通用模型。各领域分词样例可参考 example.txt。
更高的分词准确率。相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg可以取得更高的分词准确率。
支持用户自训练模型。支持用户使用全新的标注数据进行训练。
支持词性标注。
仅支持Python3, 测试词性标注的时候会自动额外下载一个包:
In [ ]:
!pip install pkuseg -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
In [5]:
import pkuseg
pku_seg = pkuseg.pkuseg(postag=True)
pku_results = pku_seg.cut(aistr)
print(' '.join('%s/%s' % (word, tag) for (word, tag) in pku_results))
采菊东篱/v 下/f ,/w 悠然/ad 见/v 南山/ns !/w
THULAC
THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点:
能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。
速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。
In [ ]:
!pip3 install thulac -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
In [1]:
import thulac
thup = thulac.thulac()
thulac_result = thup.cut('采菊东篱下,悠然见南山!')
print(' '.join('%s/%s' % (word, tag) for (word, tag) in thulac_result))
Model loaded succeed
采菊/v 东篱/n 下/f ,/w 悠然见南山/id !/w
pyhanlp
pyhanlp: Python interfaces for HanLP
自然语言处理工具包HanLP的Python接口, 支持自动下载与升级HanLP,兼容py2、py3。
注意pyhanlp安装之后使用的时候还会自动下载相关的数据文件,zip压缩文件600多M,速度有点慢,时间有点长
In [ ]:
!pip3 install pyhanlp -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
In [ ]:
from pyhanlp import HanLP
hanlp_result = HanLP.segment('采菊东篱下,悠然见南山!')
print(' '.join('%s/%s' % (term.word, term.nature) for term in hanlp_result))
FoolNLTK
FoolNLTK:https://github.com/rockyzhengwu/FoolNLTK 特点
可能不是最快的开源中文分词,但很可能是最准的开源中文分词
基于BiLSTM模型训练而成
包含分词,词性标注,实体识别, 都有比较高的准确率
用户自定义词典
可训练自己的模型
批量处理
仅在linux Python3 环境测试通过
安装,依赖TensorFlow, 会自动安装:
In [ ]:
!pip3 install foolnltk -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
In [ ]:
import fool
fool_result = fool.pos_cut('采菊东篱下,悠然见南山!')
print(' '.join('%s/%s' % (word, tag) for (word, tag) in fool_result[0]))
以上是关于中文分词及词性标注工具使用的主要内容,如果未能解决你的问题,请参考以下文章