常用的自然语言处理工具

江南仁讨论 | 贡献2019年11月16日 (六) 22:51的版本 Jiagu

Jieba

描述:“结巴”中文分词:做最好的 Python 中文分词组件

Official

功能:分词(支持自定义词典),词性标注,关键词提取,模型可手动加载(默认延迟加载机制)

online: pip install jieba
offline: https://pypi.python.org/pypi/jieba/ # 解压运行 python setup.py install

pyhanlp

描述:HanLP是由一系列模型与算法组成的工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点;HanLP的Python接口,支持自动下载与升级HanLP,兼容py2、py3,模型可延迟加载。

功能:词法分析(中文分词(支持自定义词典)、词性标注、命名实体识别)、关键词提取,自动摘要,拼音转换,简繁转换,文本推荐,文本分类,句法分析、文本分类和情感分析。

HanLP
pyhanlp
pip install pyhanlp

Python接口下提供的功能有限:分词,关键词提取,自动摘要,依存句法分析;如果要使用java版本的全部功能,需要python调用java环境下的接口,方法如下:

from pyhanlp import *
PerceptronLexicalAnalyzer = JClass('com.hankcs.hanlp.model.perceptron.PerceptronLexicalAnalyzer')
analyzer = PerceptronLexicalAnalyzer()
print(analyzer.analyze("上海华安工业(集团)公司董事长谭旭光和秘书胡花蕊来到美国纽约现代艺术博物馆参观"))

StanfordCoreNLP

描述:Stanfordcorenlp is a Python wrapper for Stanford CoreNLP. It provides a simple API for text processing tasks.

功能:Tokenization, Part of Speech Tagging, Named Entity Reconigtion, Constituency Parsing, Dependency Parsing, and more.

Github
Official
Python Wrapper
pip install stanfordcorenlp # 需要下载对应语言版本的模型,或者all in one 

NLTK

描述:NLTK是构建Python程序以使用人类语言数据的领先平台。

功能:分词,分句,实体识别,词干化,标记,解析和语义推理的文本处理库

Doc
Online
pip install nltk
import nltk
nltk.download() # 下载需要的库

Spacy

描述:一个工业级别的自然语言处理工具目前不支持中文

功能:分词,词性标注,句法分析,命名实体识别,词向量,词干化,词形还原

Official
1.pip install spacy
2.下载模型 en_core_web_sm
    2.1 在线安装 
        python -m spacy download en_core_web_sm
    2.2 离线安装 

下载模型到本地,解压

        python setup.py install
       
3.使用模型 spacy.load("en_core_web_sm")

PyLTP

描述:pyltp 是 LTP 的 Python 封装,提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能。

功能:分词,词性标注,命名实体识别,依存句法分析,语义角色标注

LTP Official
LTP Doc
PyLTP Official
PyLTP Doc
DJH-pyltp(pyltp基本使用及关系三元组抽取的应用)

基于LTP的在线开放式关系三元组抽取平台

pip install pyltp # 使用需要下载模型到本地
<<<<<<< HEAD

ChineseWordSegmentation

描述:Chinese word segmentation algorithm without corpus

功能:中文分词

from wordseg import WordSegment
doc = u'十四是十四四十是四十,十四不是四十,四十不是十四'
ws = WordSegment(doc, max_word_len=2, min_aggregation=1, min_entropy=0.5)
ws.segSentence(doc)

Jiagu

描述:Jiagu深度学习自然语言处理工具--Tensorflow==1.14.0 < 2.0

功能:知识图谱关系抽取 中文分词 词性标注 命名实体识别 情感分析 新词发现 关键词 文本摘要 文本聚类

案例:智能时代-知识图谱-机器人

pip install jiagu
---
git clone https://github.com/ownthink/Jiagu
cd Jiagu
python setup.py install

xmnlp

描述:小明NLP, 轻量级中文自然语言处理工具

功能:中文分词, 词性标注, 拼写检查,文本转拼音,情感分析,文本摘要,偏旁部首

pip install xmnlp
---
git clone https://github.com/SeanLee97/xmnlp.git
cd /path/to/xmnlp
pip install -r requirements.txt
python setup.py install

mynlp

描述:一个高性能、模块化、可扩展的中文NLP工具包--Java

功能:中文分词 词性标注 命名实体识别 新词发现 文本分类 拼音简繁转换

lightNLP

描述:基于Pytorch和torchtext的自然语言处理深度学习框架

功能:命名实体识别、中文分词、词性标注、语义角色标注、情感分析、关系抽取、语言模型、文本相似度、文本蕴含、依存句法分析、词向量训练、聊天机器人、机器翻译、文本摘要等功能

PKUSeg-python

描述:北大开源的分词工具,pkuseg多领域中文分词工具

功能:多领域分词(目前支持了新闻领域,网络领域,医药领域,旅游领域,以及混合领域),词性标注

目前仅支持python3

pip install pkuseg -i https://pypi.tuna.tsinghua.edu.cn/simple