python自然语言处理库_Python自然语言处理工具库(含中文处理)
自然語言處理(Natural Language Processing,簡稱 NLP),是研究計算機處理人類語言的一門技術。隨著深度學習在圖像識別、語音識別領域的大放異彩,人們對深度學習在 NLP 的價值也寄予厚望。再加上 AlphaGo 的成功,人工智能的研究和應用變得炙手可熱。自然語言處理作為人工智能領域的認知智能,成為目前大家關注的焦點。NLP 研究領域包括:
句法語義分析:對于給定的句子,進行分詞、詞性標記、命名實體識別和鏈接、句法分析、語義角色識別和多義詞消歧。
信息抽取:從給定文本中抽取重要的信息,比如,時間、地點、人物、事件、原因、結果、數字、日期、貨幣、專有名詞等等。通俗說來,就是要了解誰在什么時候、什么原因、對誰、做了什么事、有什么結果。涉及到實體識別、時間抽取、因果關系抽取等關鍵技術。
文本挖掘(或者文本數據挖掘):包括文本聚類、分類、信息抽取、摘要、情感分析以及對挖掘的信息和知識的可視化、交互式的表達界面。目前主流的技術都是基于統計機器學習的。
機器翻譯:把輸入的源語言文本通過自動翻譯獲得另外一種語言的文本。根據輸入媒介不同,可以細分為文本翻譯、語音翻譯、手語翻譯、圖形翻譯等。機器翻譯從最早的基于規則的方法到二十年前的基于統計的方法,再到今天的基于神經網絡(編碼-解碼)的方法,逐漸形成了一套比較嚴謹的方法體系。
信息檢索:對大規模的文檔進行索引。可簡單對文檔中的詞匯,賦之以不同的權重來建立索引,也可利用 1,2,3 的技術來建立更加深層的索引。在查詢的時候,對輸入的查詢表達式比如一個檢索詞或者一個句子進行分析,然后在索引里面查找匹配的候選文檔,再根據一個排序機制把候選文檔排序,最后輸出排序得分最高的文檔。
問答系統: 對一個自然語言表達的問題,由問答系統給出一個精準的答案。需要對自然語言查詢語句進行某種程度的語義分析,包括實體鏈接、關系識別,形成邏輯表達式,然后到知識庫中查找可能的候選答案并通過一個排序機制找出最佳的答案。
對話系統:系統通過一系列的對話,跟用戶進行聊天、回答、完成某一項任務。涉及到用戶意圖理解、通用聊天引擎、問答引擎、對話管理等技術。此外,為了體現上下文相關,要具備多輪對話能力。同時,為了體現個性化,要開發用戶畫像以及基于用戶畫像的個性化回復。
以上引用微軟亞洲研究院首席研究員周明博士在知乎的回答。
當前,用于自然語言處理(NLP)的 Python工具包括:
1.NLTK
NLTK 在使用 Python 處理自然語言的工具中處于領先的地位。它提供了超過50 個包括如: WordNet 這種方便處理詞匯資源的數據接口。同時,還有一套用于分類、標記化、詞干標記、解析和語義推理的文本處理庫,以及工業級 NLP 庫的封裝器和一個活躍的討論論壇。
統計語言學話題方面的手動編程指南加上全面的 API 文檔,使得 NLTK 非常適用于語言學家、工程師、學生、教育家、研究人員以及行業用戶等人群。NLTK 可以在 Windows、Mac OS X 以及 Linux 系統上使用。最好的一點是,NLTK 是一個免費、開源的社區驅動的項目。
因此,NLTK 被稱為一個:
使用 Python 開發的用于統計語言學的教學和研究的有利工具,和一個自然語言處理的高效庫。
2.Pattern
Pattern 擁有一系列的自然語言處理工具,比如說詞性標注工具(Part-Of-Speech Tagger),N元搜索(n-gram search),情感分析(sentiment analysis),WordNet。它也支持機器學習的向量空間模型,聚類,向量機。
3.TextBlob
TextBlob 是一個處理文本數據的 Python 庫。它提供了一個簡單的 api 來解決一些常見的自然語言處理任務,例如詞性標注、名詞短語抽取、情感分析、分類、翻譯等等。
4.Gensim
Gensim 是一個 Python 庫,用于對大型語料庫進行主題建模、文件索引、相似度檢索等。它可以處理大于內存的輸入數據。作者說它是:
純文本上無監督的語義建模最健壯、高效、易用的軟件。
5.PyNLPI
PyNLPI 全稱是:Python 自然語言處理庫(Python Natural Language Processing Library,音發作: pineapple) 是一個用于自然語言處理任務庫。它集合了各種獨立或松散互相關的,那些常見的、不常見的、對 NLP 任務有用的模塊。PyNLPI 可以用來處理 N 元搜索,計算頻率表和分布,建立語言模型。它還可以處理向優先隊列這種更加復雜的數據結構,或者像 Beam 搜索這種更加復雜的算法。同時,該處理庫還提供了完善的文檔庫。
6.spaCy
spaCy 是一個商業的開源軟件。結合了 Python 和 Cython 優異的 NLP 工具。是快速的,最先進的自然語言處理工具。
7.Polyglot
Polyglot 支持大規模多語言應用程序的處理。它支持165 種語言的分詞,196 中語言的辨識,40 種語言的專有名詞識別,16 種語言的詞性標注,136 種語言的情感分析,137 種語言的嵌入,135 種語言的形態分析,以及69 種語言的翻譯。
8.MontyLingua
MontyLingua 是一個免費的、功能強大的、端到端的英文處理工具。在 MontyLingua 輸入原始英文文本 ,輸出就會得到這段文本的語義解釋。它適用于信息檢索和提取,請求處理,問答系統。從英文文本中,它能提取出主動賓元組,形容詞、名詞和動詞短語,人名、地名、事件,日期和時間等語義信息。
9.BLLIP Parser
BLLIP Parser(也叫做 Charniak-Johnson parser)是一個集成了生成成分分析器和最大熵排序的統計自然語言分析器。它包括命令行和 Python 接口。
10.Quepy
Quepy 是一個 Python 框架,提供了將自然語言問題轉換成為數據庫查詢語言中的查詢。它可以方便地自定義自然語言中不同類型的問題和數據庫查詢。所以,通過 Quepy,僅僅修改幾行代碼,就可以構建你自己的自然語言查詢數據庫系統。
另外,上述工具大部分在處理英文自然語言上展示了良好的效果。同時,對于國內科研人員而言,自然語言處理往往需要考慮在中文應用中的差異處理。本文最后附上:復旦大學邱錫鵬教授整理并發布的中文自然語言處理工具列表,以供參考 ——
總結
以上是生活随笔為你收集整理的python自然语言处理库_Python自然语言处理工具库(含中文处理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xml文件是什么意思
- 下一篇: 佳能g3800故障灯说明书_车子保养后跑