天天看點

馴服爛代碼_5個用于馴服文本的開源工具

馴服爛代碼

文字:無處不在。 它填補了我們的社交資源,使我們的收件箱雜亂無章,并引起了我們的關注。 真是太熟悉了,但是作為程式員,真是太奇怪了。 我們在很小的時候就學習了口語和書面語言的基礎知識,在高中和大學時,它的語言也更為正式。但是,在處理應用程式中文本的方式時,我們大多數人都不會超越非常簡單的處理規則。 但是,從大多數情況來看,非結構化内容(幾乎總是文本或至少具有文本成分)構成了我們遇到的絕大多數資料。 您不認為現在該是您提高技能以更好地處理文本的時候了嗎?

幸運的是,開放源代碼中充斥着高品質的庫,可以解決文本進行中的常見問題,例如情感分析,主題識别,内容自動标記等等。 更重要的是,開源還提供了許多建構基塊庫,使您無需重新發明輪子即可輕松進行創新。 如果所有這些内容都使您回想起高中文法課,請不必擔心-我們在末尾提供了一些有用的資源來梳理您的知識并解釋有關自然語言處理的一些關鍵概念(NLP) )。 要開始您的旅程,請檢視以下項目:

  1. 斯坦福大學的核心NLP套件一個GPL許可的工具架構,用于處理英語,中文和西班牙語。 包括用于标記化(将文本拆分為單詞),語音标記的一部分,文法分析(識别名詞和動詞短語之類的東西),命名實體識别等工具。 一旦掌握了基礎知識,一定要檢查斯坦福大學同一小組的其他項目 。
  2. 自然語言工具包如果您選擇的語言是Python,那麼滿足您的許多NLP需求就比NLTK更好。 與斯坦福圖書館類似,它包含用于标記,解析和識别命名實體的功能以及許多其他功能。
  3. Apache Lucene和Solr盡管Lucene和Solr并不是專門針對解決NLP問題,但它們包含了許多用于處理文本的工具,從進階的字元串操作實用程式到功能強大且靈活的标記化庫,再到快速的用于有限狀态自動機的庫。 最重要的是,您可以免費獲得搜尋引擎!
  4. Apache OpenNLP OpenNLP項目使用與Stanford庫不同的底層方法,是Apache許可的工具套件,用于完成諸如令牌化,語音标記,解析和命名實體識别之類的任務。 盡管在其方法上不再是最先進的,但它仍然是易于安裝和運作的可靠選擇。
  5. GATE和Apache UIMA随着處理能力的發展,您可能會發現自己正在建構複雜的NLP工作流程,該工作流程需要內建多個不同的處理步驟。 在這些情況下,您可能希望使用GATE或UIMA之類的架構來标準化和抽象化用于建構複雜NLP應用程式的許多重複性工作。

如果所有關于解析,标記化和命名實體的讨論都讓您不知道如何開始,請務必閱讀以下書籍:

  1. Taming Text由Drew Farris,Tom Morton和您真正的人撰寫,旨在針對NLP和Search入門的程式員。 每章都解釋了諸如搜尋,命名實體識别,聚類和分類之類的功能背後的概念。 每章還顯示了使用著名的開源項目的工作示例。
  2. Steven Bird,Ewan Klein和Edward Loper的Python自然語言處理是NLTK的權威指南,可指導使用者完成分類,資訊提取等任務。
  3. 如果您正在尋找嚴謹的學術條件,那麼Christoph Manning和HinrichSchütz的統計自然語言處理基礎就是一個很好的起點。 它不僅解釋了許多NLP技術背後的概念,而且提供了支援它的數學方法。

畢業于更進階的NLP任務後,您可能還希望檢查來自UMass Amherst的Apache cTakes (醫學NLP 專用 ), Apache Mahout和MALLET等項目 。 如果您想嘗試使用大資料分析和複雜機器學習的新方法,請務必檢視Deeplearning4J項目。

稍加實踐和創造力,再加上開放源代碼和上述項目的力量,您的下一個應用程式可能就處在真正使語言處理像處理所有零和零一樣自然的最前沿!

本文是Rikki Endsley協調的Apache Quill專欄的一部分。 通過将您的故事送出給Opensource.com,在Apache Software Foundation的項目中共享您的成功故事和開源更新 。

翻譯自: https://opensource.com/business/15/7/five-open-source-nlp-tools

馴服爛代碼