天然語言處理相關庫

CoreNLP

斯坦福大學出品的基於Java的全棧天然語言處理工具,CoreNLP還提供了一套文本標註工具,對文本標註流程作了一些規範。CoreNLP提供了6種使用最普遍的語言(阿拉伯、漢語、英語、法語、德語、西班牙語)的詞庫。
Github
官方文檔html

Apache OpenNLP

基於Java的天然語言處理全棧工具,它提供了API和命令行兩種接口。官網地址:http://opennlp.apache.org/
初學天然語言處理,瞭解一些NLP全棧工具的功能是很好的。python

  • 語言檢測(Language Detect):發現給定文本是哪一種語言
    OpenNLP的語言檢測功能基於萊比錫數據集。
    萊比錫位於德國東部的萊比錫盆地中央,在魏塞埃爾斯特河與普萊塞河的交匯處,面積141平方千米,人口約60萬,是原東德的第二大城市。萊比錫數據集(Leipzig Corpora Collection)是爲天然語言處理提供文本數據,項目發起者爲萊比錫大學計算機學院。它實際上只提供兩個數據集:(1)各類語言的按年份列出的文章;(2)用於情感分析的標註數據集。http://wortschatz.uni-leipzig.de/en/download
  • 句子檢測(Sentence Detect):把一篇文章拆分紅若干個句子
    漢語中,直接經過標點符號就夠了。英語中的「.」具備多種含義,例如每一個縮寫詞後面都跟着一個「.」
  • 分詞(Tokenizer)
  • 命名實體識別(Name Finder)
  • 文檔分類 (Document Categorizer)
  • 語義標註(Part of Speech Tagger)
  • 提取主幹(Lemmatizer):對於單詞能夠提取詞幹,這個功能由Stemmer完成;對於句子能夠進行縮句,這個功能由Lemaatizer完成
  • 分層分段(Chunker):給定一篇文章,按照意思把文章分紅若干段落或者把一段分紅若干層。
  • 句法分析(Parser)
  • 指代消解(Coreference Resolution)

NLP4j

NLP4j的前身是clearNLP,是一個Java實現的天然語言處理庫。
Githubgit

HanLP

和CoreNLP、OpenNLP是同類產品,基於Java、全棧天然語言處理工具包。不須要學習CoreNLP、OpenNLP,直接學習HanLP足夠了。github

polyglot

多語言、全棧、純Python的天然語言處理庫:https://github.com/aboSamoor/polyglotweb

  • Tokenization (165 Languages)
  • Language detection (196 Languages)
  • Named Entity Recognition (40 Languages)
  • Part of Speech Tagging (16 Languages)
  • Sentiment Analysis (136 Languages)
  • Word Embeddings (137 Languages)
  • Morphological analysis (135 Languages)
  • Transliteration (69 Languages)

pattern

pattern是一個基於Python的web挖掘模塊,功能包括:算法

  • 爬蟲,包括HTTP請求模塊和HTML解析模塊,內置爬取谷歌、Twitter、維基等)
  • 天然語言處理:part-of-speech taggers, n-gram search, sentiment analysis, WordNet
  • 機器學習:machine learning (vector space model, clustering, SVM)
  • 網絡分析:network analysis
  • 可視化

https://pypi.org/project/pattern3/3.0.0/apache

TextBlob

TextBlob是一個純Python寫的全棧天然語言處理庫。網絡

  • 名詞詞組抽取:Noun phrase extraction
  • 語義標註:Part-of-speech tagging
  • 情感分析:Sentiment analysis,情感分析是文本分類的一種特殊問題,能夠說是最多見的文本分類問題。
  • 文本分類:Classification (Naive Bayes, Decision Tree)
  • 翻譯:Language translation and detection powered by Google Translate,TextBlob的翻譯經過網絡請求訪問Google,並無提供翻譯的實現。
  • 分詞:Tokenization (splitting text into words and sentences)
  • 詞、詞組頻率統計:Word and phrase frequencies
  • 語法分析:Parsing
  • n元語法模型:n-grams
  • 詞語映射,如尋找詞根:Word inflection (pluralization and singularization) and lemmatization
  • 拼寫糾錯:Spelling correction
  • 便於擴展:Add new models or languages through extensions
  • 集成了WordNet:WordNet integration

官方文檔機器學習

snowNLP

SnowNLP是一個python寫的類庫,能夠方便的處理中文文本內容,是受到了TextBlob的啓發而寫的,因爲如今大部分的天然語言處理庫基本都是針對英文的,因而寫了一個方便處理中文的類庫,而且和TextBlob不一樣的是,這裏沒有用NLTK,全部的算法都是本身實現的,而且自帶了一些訓練好的字典。注意本程序都是處理的unicode編碼,因此使用時請自行decode成unicode。
該庫功能包括:分詞、標註、情感分析。snowNLP提供的功能是TextBlob的子集。
https://github.com/isnowfy/snownlp工具

nlpir

中科院出品的基於C++實現的天然語言全站工具,提供Java、C#等多種語言的封裝。主要功能包括中文分詞;英文分詞;詞性標註;命名實體識別;新詞識別;關鍵詞提取;支持用戶專業詞典與微博分析。NLPIR系統支持多種編碼、多種操做系統、多種開發語言與平臺。
http://ictclas.nlpir.org/
Github

NLTK

老牌的Python全棧天然語言處理庫。

AllenNLP

AllenNLP是純Python(只提供Python3.6以上版本的包)、基於Pytorch實現的全棧天然語言處理包,過去的天然語言處理包大都是傳統方法,AllenNLP中包含了大量的深度學習方法。AllenNLP是由Allen機構發佈的,Allen是一個AI研究機構。
Github地址
AllenNLP官網

spaCy

spaCy是基於Python和Cython的高效、商業化、支持45種以上語言的天然語言處理工具包。該庫對漢語支持略顯不足。
Github

MontyLingua

支持Python和Java兩種語言、只針對英語的天然語言處理庫。http://alumni.media.mit.edu/~hugo/montylingua/

NiuTrans

東北大學朱靖波實驗室的基於統計的機器翻譯模型:http://www.niutrans.com/niutrans/NiuTrans.ch.html

foolNLTK

國人開發,基於Python

gensim

功能包括詞向量和文檔主題發現。

glove

C++實現的詞向量工具,詞向量生成有三種方式:glove、cbow、skip-gram。

fasttext

提供了詞向量工具和文本分類功能。

分詞器

  • jieba:最流行的Python分詞器
  • jieba-analysis:Java版的jieba
  • ansj:孫健的分詞器
  • IKAnalyzer:常見於Solr和Lucene
  • mmseg4j
  • jcseg
  • 斯坦福福瓷器
  • pkuseg北大分詞器
  • FudanNLP:復旦分詞器
  • paoding:老牌分詞器
  • smartcn
  • ictclas:中科院基於HMM的分詞器
  • nlpir:中科院分詞器
  • smallseg
  • snailseg
  • thulac:清華分詞器
  • ltp:哈工大分詞器

bosen波森

波森是一個web服務,提供天然語言處理全棧服務。明明是國產,非要起個外國名字。
https://bosonnlp.com/about


天然語言處理的庫很是豐富,質量卻也參差不齊。許多庫的做者都是一我的開發的,維護也不到位。

相關文章
相關標籤/搜索