1. 程式人生 > >Apache OpenNLP介紹(一)

Apache OpenNLP介紹(一)

一、介紹

1、描述

      Apache OpenNLP庫是一種基於機器學習的工具包,用於處理自然語言文字。它支援最常見的NLP任務,如標記化,句子分割,詞性標記,命名實體提取,分塊,解析和參考解析。 通常需要這些任務來構建更高階的文字處理服務。 OpenNLP還包括基於最大熵和感知器的機器學習。
      OpenNLP專案的目標是為上述任務建立一個成熟的工具包。 另一個目標是為各種語言提供大量預構建的模型,以及這些模型來自的註釋文字資源。

2、結構

       Apache OpenNLP庫包含幾個元件,使得能夠構建一個完整的自然語言處理管道。 這些元件包括:句子檢測器,分詞器,名稱查詢器,文件分類器,詞性標記器,chunker,解析器,引數解析。元件包含能夠執行各自然語言處理任務,訓練模型以及通常還用於評估模型的部分。

每個這些設施都可以通過其應用程式介面(API)訪問。 此外,提供命令列介面(CLI)以方便實驗和訓練。

3、

      1、)應用程式介面(API)。通用示例

     OpenNLP元件具有類似的API。 通常,要執行任務,應該提供一個模型和一個輸入。

     模型通常通過為模型類的建構函式提供一個FileInputStream模型來載入:
      InputStream modelIn = new FileInputStream("lang-model-name.bin");
      try {

            SomeModel model = new SomeModel(modelIn);

            }
      catch (IOException e) {
           //handle the exception
            }
      finally {
      if (null != modelIn) {
      try {
           modelIn.close();
           }
    catch (IOException e) {
          }
  }
}
       2、) 載入模型後,工具本身可以例項化。
      ToolName toolName = new ToolName(model);
       3、)在例項化工具之後,可以執行處理任務。輸入和輸出格式是特定於工具的,但通常輸出是一個字串陣列,輸入是字串或字串陣列。       String output[] = toolName.executeTask("This is a sample text.");