目录

Tokenizer

模型训练

句子分词


Tokenizer

OpenNLP标记器将输入字符序列分段为标记。标记通常是单词、标点符号、数字等。标记化是一个两阶段的过程:首先,确定句子边界,然后识别每个句子中的标记。

支持以下类型的分词器:

Whitespace Tokenizer:空格标志器,以空格进行拆分

Simple Tokenizer:一个字符类的Tokenizer ,相同字符类的序列为tokens

Learnable Tokenizer: 基于检测标志边界的概率模型的最大熵标记器

模型训练

import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.nio.charset.StandardCharsets;import opennlp.tools.dictionary.Dictionary;import opennlp.tools.tokenize.TokenSample;import opennlp.tools.tokenize.TokenSampleStream;import opennlp.tools.tokenize.TokenizerFactory;import opennlp.tools.tokenize.TokenizerME;import opennlp.tools.tokenize.TokenizerModel;import opennlp.tools.util.InputStreamFactory;import opennlp.tools.util.MarkableFileInputStreamFactory;import opennlp.tools.util.ObjectStream;import opennlp.tools.util.PlainTextByLineStream;import opennlp.tools.util.TrainingParameters;public class TokenizerTrain {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString rootDir = System.getProperty("user.dir") + File.separator;String fileResourcesDir = rootDir + "resources" + File.separator;String modelResourcesDir = rootDir + "opennlpmodel" + File.separator;//训练数据的路径String filePath = fileResourcesDir + "tokenizer.txt";//训练后模型的保存路径String modelPath = modelResourcesDir + "en-token-my.bin";//按行读取数据InputStreamFactory inputStreamFactory = new MarkableFileInputStreamFactory(new File(filePath));ObjectStream<String> lineStream = new PlainTextByLineStream(inputStreamFactory, StandardCharsets.UTF_8);//按行读取数据ObjectStream<TokenSample> sampleStream = new TokenSampleStream(lineStream);TokenizerFactory factory =new TokenizerFactory("en",new Dictionary(),false,null);//训练模型TokenizerModel model =TokenizerME.train(sampleStream, factory, TrainingParameters.defaultParams());//保存模型FileOutputStream fos=new FileOutputStream(new File(modelPath));OutputStream modelOut = new BufferedOutputStream(fos);model.serialize(modelOut);}}

句子分词

import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import opennlp.tools.tokenize.TokenizerME;import opennlp.tools.tokenize.TokenizerModel;public class TokenizerPredit {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString rootDir = System.getProperty("user.dir") + File.separator;String fileResourcesDir = rootDir + "resources" + File.separator;String modelResourcesDir = rootDir + "opennlpmodel" + File.separator;//String filePath = fileResourcesDir + "sentenceDetector.txt";String modelPath = modelResourcesDir + "en-token.bin";InputStream modelIn = new FileInputStream(modelPath) ;//加载模型TokenizerModel model = new TokenizerModel(modelIn);//实例化模型TokenizerME tokenizer = new TokenizerME(model);//分词检测String tokens[] = tokenizer.tokenize(" An input sample sentence.");//获取概率参数double tokenProbs[] = tokenizer.getTokenProbabilities();for(String str:tokens){System.out.println(str);}for(double pro:tokenProbs){System.out.print(pro+",");}}}

[NLP]OpenNLP标记器的使用相关推荐

  1. MusicBrainz Picard for Mac(跨平台音乐标记器)

    MusicBrAInz Picard for Mac是一款免费的跨平台音乐标记器,MusicBrAInz Picard拥有易于使用的界面用户界面,旨在轻松标记翻录的曲目,帮助大家进行跨平台音乐标记.喜 ...

  2. 放弃幻想,全面拥抱Transformer:NLP三大特征抽取器(CNN/RNN/TF)比较

    作者 | 张俊林,中国中文信息学会理事,目前在新浪微博 AI Lab 担任资深算法专家.在此之前,张俊林曾经在阿里巴巴任资深技术专家,以及在百度和用友担任技术经理及技术总监等职务.同时他是技术书籍&l ...

  3. NLP三大特征抽取器(CNN/RNN/TF)比较:全面拥抱Transformer

    作者 | 张俊林,中国中文信息学会理事,目前在新浪微博 AI Lab 担任资深算法专家.在此之前,张俊林曾经在阿里巴巴任资深技术专家,以及在百度和用友担任技术经理及技术总监等职务.同时他是技术书籍&l ...

  4. [NLP]OpenNLP命名实体识别(NameFinder)的使用

    目录 Name Finder 模型训练 命名识别 Name Finder 命名查找器可以检测文本中的命名实体和数字.为了能够检测到实体,命名查找器需要一个模型.模型依赖于它被训练的语言和实体类型.Op ...

  5. NLP大杀器BERT模型解读

    谷歌研究人员通过新的BERT模型在11项NLP任务中夺得STOA结果,这在自然语言处理学界以及工业界都引起了不小的热议.作者通过在33亿文本的语料上训练语言模型,再分别在不同的下游任务上微调,这样的模 ...

  6. [NLP]OpenNLP语句检测器的使用

    目录 Sentence Detector 模型训练 语句检测 Sentence Detector 语句检测器,OpenNLP语句检测器可以检测标点字符是否标记了句子的结尾.在这个意义上,句子被定义为两 ...

  7. [NLP]OpenNLP语言检测器的使用

    目录 Language Detector 模型训练 语言类型预测 Language Detector 语言检测器,属于分类范畴.即OpenNLP语言检测器根据模型的能力用ISO-639-3(国际语种代 ...

  8. python中pos()_python中不带NLTK的POS标记器

    我想给索拉尼库尔德语的限定词和介词做一个词性标记.我使用下面的代码将每个标记放在库尔德语文本中的每个命题或限定词之后.在import os SOR = open("SOR-1.txt&quo ...

  9. [NLP]OpenNLP块检测器(Chunker)的使用

    Chunker 分块是将文章的内容分成句法相关的词组,如名词组.动词组,但不指定它们的内部结构,也不说明它们在主句中的作用. 训练数据的输入格式如下: Rockwell NNP B-NP Intern ...

最新文章

  1. 计算机应用基础第三章操作步骤,最新江西三校生计算机应用基础模拟操作题集锦(超实用!)...
  2. [c#]解决方案:需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
  3. Sublime Text 3安装Package Control快速建立html5和xhtml文档
  4. Vim技能修炼教程(16) - 浮点数计算函数
  5. server2019远程服务器ipv4地址_Windows Server 2019远程桌面服务配置和授权激活
  6. 96. Unique Binary Search Trees1和2
  7. spring Bean的初始化和销毁 (使用注解)
  8. numpy 中的 broadcasting(广播)机制
  9. pycharm运行pytorch版pix2pix学习笔记
  10. 【直线检测】【matlab】基于Hough变换的直线检测
  11. SecureCRT右键粘贴的设置
  12. 浙江大学公共管理学院与阿里云计算有限公司达成战略合作 | 凌云时刻
  13. eclipse主题彻底美化——你还在用白底黑字的编辑器吗?
  14. 最全面的Nginx工作原理讲解,Nginx学习笔记——来自动力节点
  15. **冠图DWG图纸加密个人版**
  16. 含泪整理最优质时间轴网页特效素材,你想要的这里都有
  17. MySQL服务器地址为空,win10 mysql没有服务器地址
  18. 东北java第一人_东北一“巨富豪宅”,号称“吉林第一宅”,主人曾是“大财主”...
  19. 适合于图像处理方向的SCI/EI期刊杂志列表
  20. DC 不支持P2V或者V2P的虚拟化转换

热门文章

  1. windows下一些常用的dos命令
  2. [转载]onclientclick和onclick区别
  3. 软考笔记第九天之多媒体基础
  4. 《梦断代码》读后感2
  5. 多线程程序中操作的原子性--转帖
  6. RDB 和 AOF 持久化的原理是什么?我应该用哪一个?它们的优缺点? 1
  7. 《Redis官方教程》-Redis安全
  8. 笔记本系统恢复连载之十:系统恢复并不难
  9. Linux 中的 XEN 虚拟化技术(二)Xen 的安装和配置
  10. 时间日期、查找、压缩类