真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

OpenNLP的Tokenizer怎么用

這篇文章主要講解了“OpenNLP的Tokenizer怎么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“OpenNLP的Tokenizer怎么用”吧!

成都創(chuàng)新互聯公司是一家專業(yè)提供汨羅企業(yè)網站建設,專注與成都網站設計、成都網站制作、HTML5建站、小程序制作等業(yè)務。10年已為汨羅眾多企業(yè)、政府機構等服務。創(chuàng)新互聯專業(yè)網絡公司優(yōu)惠進行中。

OpenNLP Tokenizers分割一個輸入字符序列為tokens。Tokens通常是一個單詞,標點符號,數字等等。

Pierre Vinken, 61 years old, will join the board as a nonexecutive director Nov. 29.
Mr. Vinken is chairman of Elsevier N.V., the Dutch publishing group.
Rudolph Agnew, 55 years old and former chairman of Consolidated Gold Fields
    PLC, was named a director of this British industrial conglomerate.

The following result shows the individual tokens in a whitespace separated representation.

Pierre Vinken , 61 years old , will join the board as a nonexecutive director Nov. 29 .
Mr. Vinken is chairman of Elsevier N.V. , the Dutch publishing group .
Rudolph Agnew , 55 years old and former chairman of Consolidated Gold Fields PLC ,
    was named a nonexecutive director of this British industrial conglomerate . 
A form of asbestos once used to make Kent cigarette filters has caused a high
    percentage of cancer deaths among a group of workers exposed to it more than 30 years ago ,
    researchers reported .

OpenNLP提供了多個Tokenizer實現:

  • Whitespace Tokenizer - 一個空格Tokenizer,沒有空格的序列被識別為tokens

  • Simple Tokenizer - 一個字符類的Tokenizer ,相同字符類的序列為tokens

  • Learnable Tokenizer - 一個最大熵Tokenizer,基于概率模型檢測token邊界

大多數詞性標注(part-of-speech taggings),句法分析(parsers)等,以這種方式使用文本tokenized工作。確保你的tokenizer產生期望的tokens類型,使用later文本處理組件是非常重要的。

使用OpenNLP(和其他許多系統(tǒng)),tokenization是一個兩個階段的處理:首先,識別句子邊界,然后識別其中每一個句子的tokens。

###Tokenizer Tools### ###Tokenizer API### Tokenizers可以通過它定義的API集成到一個應用程序。WhitespaceTokenizer的共享示例可以通過靜態(tài)字段WhitespaceTokenizer.INSTANCE得到。SimpleTokenizer的共享實例可以使用同樣的方式從SimpleTokenizer.INSTANCE得到。在實例化TokenizerME(learnable Tokenizer)前,必須先創(chuàng)建一個Token模型。下面的代碼示例展示了怎樣加載一個模型。

InputStream modelIn = new FileInputStream("en-token.bin");

try {
  TokenizerModel model = new TokenizerModel(modelIn);
}
catch (IOException e) {
  e.printStackTrace();
}
finally {
  if (modelIn != null) {
    try {
      modelIn.close();
    }
    catch (IOException e) {
    }
  }
}

在模型加載后,可以實例化TokenizerME。

Tokenizer tokenizer = new TokenizerME(model);

Tokenizer提供兩個Tokenize方法,兩個方法都期望一個包含未被Tokenized的文本的輸入String對象。如果可能最好是一個句子,但是取決于learnable Tokenizer的訓練,這不是必須的。第一個返回一個String數組,數組中每一個String是一個token。

String tokens[] = tokenizer.tokenize("An input sample sentence.");

輸出是一個包含這些tokens的數組。

"An", "input", "sample", "sentence", "."

第二個方法,TokenizePos方法返回一個Span數組,每一個Span包含這個輸入String的tokens的開始和結束字符偏移量。

Span tokenSpans[] = tokenizer.tokenizePos("An input sample sentence.");	

這個tokenSpans數組有5個元素。調用Span.getCoveredText得到一個span的文本,它得到一個Span和輸入的文本。TokenizerME可以輸出被檢測的tokens的概率。getTokenProbabilities 方法必須立即調用,在tokenize的方法被調用之后。

TokenizerME tokenizer = ...

String tokens[] = tokenizer.tokenize(...);
double tokenProbs[] = tokenizer.getTokenProbabilities();

tokenProbs 數組的每一個token在線包括一個double值,這個值大小從0到1,1是最大的可能的概率,0是最小的可能的概率值。

##Tokenizer Training## ###Training Tool### ###Training API### Tokenizer提供了API來訓練新的tokenization模型。訓練需要三個基本步驟:

  • 應用程序必須打開一個示例數據流

  • 調用TokenizerME.train方法

  • 保存TokenizerModel到一個文件或者直接使用它

下面的示例代碼解釋了這三步:

Charset charset = Charset.forName("UTF-8");
ObjectStream lineStream = new PlainTextByLineStream(new FileInputStream("en-sent.train"),
    charset);
ObjectStream sampleStream = new TokenSampleStream(lineStream);

TokenizerModel model;

try {
  model = TokenizerME.train("en", sampleStream, true, TrainingParameters.defaultParams());
}
finally {
  sampleStream.close();
}

OutputStream modelOut = null;
try {
  modelOut = new BufferedOutputStream(new FileOutputStream(modelFile));
  model.serialize(modelOut);
} finally {
  if (modelOut != null)
     modelOut.close();
}

感謝各位的閱讀,以上就是“OpenNLP的Tokenizer怎么用”的內容了,經過本文的學習后,相信大家對OpenNLP的Tokenizer怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!


網站題目:OpenNLP的Tokenizer怎么用
文章地址:http://weahome.cn/article/ijjcjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部