2010-11-12 25 views
4

我需要在文集中爲我的文件添加POS標記。 我已經成功地遵循了SharpNlp
的安裝說明我使用的是二進制版本如何在我的C#應用​​程序中使用SharpNlp

I created a new c# project in:  E:\sharp\sharpapp 
location of Models Folder is:  E:\sharp\sharpapp\bin\Models 
location of my SharpNlp Binary is: E:\sharp\SharpNLP-1.0.2529-Bin 

我也跟着指示,以修改這兩個.config文件「ParseTree.Exe」和「ToolsExamples.Exe」

現在在我的c#項目中,我有一個名爲tagging.cs的類,我必須訪問我的語料庫文本文件併爲這些文件做POS標記。任何人都可以幫助我如何使用SharpNlp來做到這一點

請提供相關步驟。

+0

此項目的開發人員指南目前似乎是存根,但由於SharpNLP是OpenNLP的C#端口,也許後者的文檔可能有所幫助:http://sourceforge.net/apps/mediawiki/opennlp/ index.php?title = POS_Tagger – 2010-11-12 17:40:37

回答

10

簡而言之,SharpNLP

  • 一個端口的OpenNLP Tools C#和OpenNLP MaxEnt
  • 一個連接器共發現
  • 一組預先計算的模型,多爲英語
  • 實用模塊如與SQLLite集成

應該注意的是,OpenNLP庫的端口是相對非正式的,有各種類和屬性名稱的變化,可能會鬆散保留特徵和語義,並且與原始Java項目的生命週期沒有明顯的聯繫。這種情況可能會確保SharpNLP的OpenNLP部分在時間上會比孿生姐妹更類似於遠房親戚......

從來沒有那麼少,可以使用來自OpenNLP的示例和文檔來補充相對較薄支持SharpNLP的材料。在SharpNLP的源代碼和OpenNLP API referenceOpenNLP wiki等資源之間,通常可以映射事物並進行相應的調整。

鬆散的導體可能是這個特殊的source file的研究,它使用OpenNLP的方式看起來接近你可能需要的。注意OpenNLP和SharpNLP之間的名稱改變,例如POSTTaggerME類成爲MaximumEntropyPosTagger解析()方法及其過載轉向TagSentence()和這樣。

更一般的暗示是瞭解...
... 的通常必要的步驟來執行詞性標註序列。
這是一個非常高層次的近似描述,但我認爲很有用。文本

    • 獲取文本進行標記=串(一個或多個)初始化文本解析器
    • 解析它=一個與個別令牌「陣列」(或其它容器)即單詞和標點符號。
    • 初始化POS標註器,尤其是說出它的其中模型它應該使用
    • 飼料令牌[責令]序列的POS標註器
    • 鉭DAH!使用POS標籤來實現NLP應用程序的最終目的。

    請注意上述順序是如何假定模型是容易獲得的。
    該模型是一般表示文本統計「概況」的表示,其通過使用易於標記的一組文本對Tagger進行訓練而獲得。
    SharpNLP提供了通用英語語言的模型,但爲了標記其他語言,或者如果要標記的特定語料庫屬於特定域(如醫療報告或推文或...),可能更可取的是,訓練標記器以提高其精度。
    Open/SharpNLP與大多數POS標記一樣,無論是獨立的還是它們的API,通常都包含對它們進行訓練的特徵(=給出一組給定的樣本文本,以便於標記)並驗證模型/標記器的質量如此產生(=比較測試集上產生的標籤,以及該組預期的標籤)。

  • 相關問題