自然語言處理相關庫


CoreNLP

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

Apache OpenNLP

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

  • 語言檢測(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實現的自然語言處理庫。
Github

HanLP

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

polyglot

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

  • 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/

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


自然語言處理的庫非常豐富,質量卻也良莠不齊。許多庫的作者都是一個人開發的,維護也不到位。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM