中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

OpenNLP怎么使用

發布時間:2022-01-05 16:50:43 來源:億速云 閱讀:175 作者:iii 欄目:云計算

本篇內容介紹了“OpenNLP怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

#第一章 引言#

##概述##

Apache OpenNLP包是一個基于機器學習的工具,用于處理自然語言。它支持常用的NLP任務,例如分詞(tokenization),句子切分(sentence segementation),命名試題提取(named entity extraction),chunking,句法分析(parsing),coreference resolution。要構建更加高級的文本處理服務,這些任務通常是必須的。OpenNLP還包括最大熵和基于感知的機器學習。

OpenNLP項目的目標是為上述任務創建一個成熟的工具集。另外一個目標是為各種各樣的語言提供大量的預構建(pre-build)模型,和從這些模型派生的帶注解的文本資源。

##通用包結構##

OpenNLP包括許多組件,讓你可以構建一個完整的自然語言處理管道。這些組件包括:sentence detector, tokenizer, name finder, document categorizer, part-of-speech tagger, chunker, parser, coreference resolution。組件包含(不同的)部件,允許你執行獨立的自然語言處理任務,例如訓練一個模型,或者經常評估一個模型。通過他的API很容易理解他們的每一個工具。此外,(OpenNLP)提供了一個命令行(CLI),可以方便的進行試驗和訓練。

##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) {
    }
  }
}

在模型被加載后,這個組件工具自身可以被實例化。

ToolName toolName = new ToolName(model);

在這個工具被實例化之后,這個處理任務可以被執行。對這個工具,輸入輸出格式是特定的,但是,通常,輸出時一個String數組,輸入是一個String或者String數組。

String output[] = toolName.executeTask("This is a sample text.");

##命令行接口 (CLI)##

###概述###

OpenNLP提供了一個命令行腳本,對它的所有工具來說作為一個獨特的切入點。腳本位于OpenNLP二進制包的bin目錄下。包含Windows版本:opennlp.bat和Linux以及Linux兼容的系統:opennlp。

###安裝###

OpenNLP腳本使用JAVA_CMD和JAVA_HOME變量來決定使用哪一個命令來執行Java虛擬機。

OpenNLP腳本使用“OPENNLP_ HOME“變量來決定OpenNLP二進制包的位置。推薦使用這個變量指向當前OpenNLP版本二進制包,并且更新PATH變量,使其包含 $OPENNLP _HOME/bin 或者 %OPENNLP _ HOME%\bin 。

這樣的配置允許方便的調用OpenNLP。下面的例子假設做了這樣的配置。

###通用例子###

Apache OpenNLP提供了一個通用的命令行腳本來訪問它所有的工具:

$ opennlp

這個腳本打印當前包的版本并且列出所有可用的工具:

OpenNLP <VERSION>. Usage: opennlp TOOL
where TOOL is one of:
  Doccat                            learnable document categorizer
  DoccatTrainer                     trainer for the learnable document categorizer
  DoccatConverter                   converts leipzig data format to native OpenNLP format
  DictionaryBuilder                 builds a new dictionary
  SimpleTokenizer                   character class tokenizer
  TokenizerME                       learnable tokenizer
  TokenizerTrainer                  trainer for the learnable tokenizer
  TokenizerMEEvaluator              evaluator for the learnable tokenizer
  TokenizerCrossValidator           K-fold cross validator for the learnable tokenizer
  TokenizerConverter                converts foreign data formats (namefinder,conllx,pos) to native OpenNLP format
  DictionaryDetokenizer
  SentenceDetector                  learnable sentence detector
  SentenceDetectorTrainer           trainer for the learnable sentence detector
  SentenceDetectorEvaluator         evaluator for the learnable sentence detector
  SentenceDetectorCrossValidator    K-fold cross validator for the learnable sentence detector
  SentenceDetectorConverter         converts foreign data formats (namefinder,conllx,pos) to native OpenNLP format
  TokenNameFinder                   learnable name finder
  TokenNameFinderTrainer            trainer for the learnable name finder
  TokenNameFinderEvaluator          Measures the performance of the NameFinder model with the reference data
  TokenNameFinderCrossValidator     K-fold cross validator for the learnable Name Finder
  TokenNameFinderConverter          converts foreign data formats (bionlp2004,conll03,conll02,ad) to native OpenNLP format
  CensusDictionaryCreator           Converts 1990 US Census names into a dictionary
  POSTagger                         learnable part of speech tagger
  POSTaggerTrainer                  trains a model for the part-of-speech tagger
  POSTaggerEvaluator                Measures the performance of the POS tagger model with the reference data
  POSTaggerCrossValidator           K-fold cross validator for the learnable POS tagger
  POSTaggerConverter                converts conllx data format to native OpenNLP format
  ChunkerME                         learnable chunker
  ChunkerTrainerME                  trainer for the learnable chunker
  ChunkerEvaluator                  Measures the performance of the Chunker model with the reference data
  ChunkerCrossValidator             K-fold cross validator for the chunker
  ChunkerConverter                  converts ad data format to native OpenNLP format
  Parser                            performs full syntactic parsing
  ParserTrainer                     trains the learnable parser
  BuildModelUpdater                 trains and updates the build model in a parser model
  CheckModelUpdater                 trains and updates the check model in a parser model
  TaggerModelReplacer               replaces the tagger model in a parser model
All tools print help when invoked with help parameter
Example: opennlp SimpleTokenizer help

OpenNLP工具具有相似的命令行結構和選項。要發現工具選項,運行它,不帶任務參數:

$ opennlp ToolName

這個工具將會輸入兩個幫助塊。

第一塊描述了這個命令行工具的通用結構:

Usage: opennlp TokenizerTrainer[.namefinder|.conllx|.pos] [-abbDict path] ...  -model modelFile ...

這個命令行工具的通用結構包括必須的工具名(TokenizerTrainer),可選的格式參數([.namefinder|.conllx|.pos]),可選的參數([-abbDict path] ...)和必須的參數(-model modelFile ...)。

格式參數能夠使直接處理非本地化數據,不用轉換。每一個格式都有它自己的參數,如果相應的工具執行時不帶參數或者帶參數help,他們將會顯示:

$ opennlp TokenizerTrainer.conllx help


Usage: opennlp TokenizerTrainer.conllx [-abbDict path] [-alphaNumOpt isAlphaNumOpt] ...

Arguments description:
        -abbDict path
                abbreviation dictionary in XML format.
        ...

要轉換當前格式,并制定一個特殊的格式,在工具名后面添加一個.,和格式的名字:

$ opennlp TokenizerTrainer.conllx -model en-pos.bin ...

第二個幫助信息塊描述了獨特的參數:

Arguments description:
        -type maxent|perceptron|perceptron_sequence
                The type of the token name finder model. One of maxent|perceptron|perceptron_sequence.
        -dict dictionaryPath
                The XML tag dictionary file
        ...

大多數用于處理的工具都需要提供至少一個模型:

$ opennlp ToolName lang-model-name.bin

當工具通過這樣方式執行,模型被加載,工具等待來自標準輸入設備的輸入。輸入被處理,并且被打印到一個標準輸出。

可以替代,或者說,最常用的使用方法是使用控制臺輸入輸出重定向選項來提供一個輸入或者輸出文件:

$ opennlp ToolName lang-model-name.bin < input.txt > output.txt

大多數用于模型訓練的工具需要首先提供一個模型名字,可選的一些訓練選項(例如模型類型,迭代次數),和數據。

一個模型名稱是一個文件名。

訓練選項通常包括迭代次數,中斷,abbreviations dictionary和其他一些東西。有時,可以通過一個訓練選項文件提供這些選項。在這種情況下,這項選項將被忽略,并且來自文件的選項會被使用。

對于數據,你需要指定數據的路徑(文件名),通常還需要指定語言和編碼。

命令行下運行一個工具訓練的通用例子大概是:

$ opennlp ToolNameTrainer -model en-model-name.bin -lang en -data input.train -encoding UTF-8

或者帶格式:

$ opennlp ToolNameTrainer.conll03 -model en-model-name.bin -lang en -data input.train \
                              -types per -encoding UTF-8

大多數用于模型評估的工具類似于那些用于任務執行的工具,并且首先需要提供一個模型名字,可選的一些評估選項(例如是否打印被錯誤分類的例子),還有測試數據。命令行下運行一個評估的通用例子大概是:

$ opennlp ToolNameEvaluator -model en-model-name.bin -lang en -data input.test -encoding UTF-8

“OpenNLP怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定结县| 威远县| 耿马| 伊通| 旺苍县| 罗田县| 甘孜| 阜南县| 廊坊市| 衡山县| 荃湾区| 上饶县| 上林县| 革吉县| 军事| 肥乡县| 闽清县| 郓城县| 兴仁县| 时尚| 绥滨县| 沙河市| 弥勒县| 荔波县| 米易县| 福建省| 磴口县| 孟村| 望城县| 石家庄市| 阿拉尔市| 青川县| 四平市| 临沧市| 苍山县| 新巴尔虎左旗| 凤台县| 万源市| 山东| 土默特右旗| 崇仁县|