QQ:66781877

1.前言

最近的一个项目有个需求是这样的,需要从一篇英文文章或者一段英文文字中提取出其中的形容词(adjective),即对单词进行词性标注,我看到这个需求,第一反应是这肯定是个自然语言处理的问题。首先需要对句子进行分词,英文的分词是很容易的,但是分词之后,对于词性的判断,我最初的想法是,找一个英文字典,然后将单词输入,在字典中进行词性的查找。

先不说这种方法词性判断的准确率,从效率上来说,这样去对单词按词性分类,速度是很慢的。于是我继续查找资料,发现,对中文的词性判断,是有开源的解决方案的,如一些中文分词器:jcseg等等。但是对英文单词的词性标注,这些中文分词器是没有做到的,至少我目前没有找到。

既然中文分词器能对中文进行词性标注,那么英文分词器是否能对英文进行词性标注呢?很遗憾,我在lucene中,并没有找到相关的API,于是乎,我只能寻求其它解决办法。

进过一番努力,我从Stanford University的自然语言处理小组网站上找到了一个开源的英文词性标注工具,大喜过望,看了相关的介绍文档之后,运行了例子程序,发现分词的准确率是很高的,而且速度很快。

2.程序及说明

这个开源词性标注工具中有三种分类器,english-bidirectional-distsim.tagger   english-left3words-distsim.tagger   wsj-0-18-bidirectional-nodistsim.tagger,根据他的说明文档,标注的准确率大概在97.01%,另外,该工具还可以对中文、德文等语言进行词性标注。
下面来看看标注程序及标注结果:

2.1.标注程序

public class Tagger {public static void main(String[] args) throws Exception {String str = "The list of prisoners who may be released in coming days includes militants" +" who threw firebombs, in one case at a bus carrying children; stabbed and shot" +" civilians, including women, elderly Jews and suspected Palestinian collaborators; " +"and ambushed and killed border guards, police officers, security agents and soldiers. " +"All of them have been in prison for at least two decades; some were serving life sentences.";MaxentTagger tagger = new MaxentTagger("c:/wsj-0-18-bidirectional-nodistsim.tagger");Long start = System.currentTimeMillis();List<List<HasWord>> sentences = MaxentTagger.tokenizeText(new StringReader(str));System.out.println("Tagging 用时"+(System.currentTimeMillis() - start)+"毫秒");for (List<HasWord> sentence : sentences) {ArrayList<TaggedWord> tSentence = tagger.tagSentence(sentence);System.out.println(Sentence.listToString(tSentence, false));}}}

2.2.标注结果

Tagging 用时84毫秒
The/DT list/NN of/IN prisoners/NNS who/WP may/MD be/VB released/VBN in/IN coming/VBG days/NNS includes/VBZ militants/NNS who/WP threw/VBD firebombs/NNS ,/,
in/IN one/CD case/NN at/IN a/DT bus/NN carrying/VBG children/NNS ;/: stabbed/VBN and/CC shot/VBN civilians/NNS ,/, including/VBG women/NNS ,/, elderly/JJ
Jews/NNS and/CC suspected/JJ Palestinian/JJ collaborators/NNS ;/: and/CC ambushed/VBN and/CC killed/VBN border/NN guards/NNS ,/, police/NN officers/NNS ,/,
security/NN agents/NNS and/CC soldiers/NNS ./.All/DT of/IN them/PRP have/VBP been/VBN in/IN prison/NN for/IN at/IN least/JJS two/CD decades/NNS ;/: some/DT
were/VBD serving/VBG life/NN sentences/NNS ./.
下面这张表,是英文单词的词性表
从上面的表和程序的标注结果来看,分词是很准确的。

对英文单词的词性标注相关推荐

  1. 4.2 英文分词及词性标注

    转载自: https://datartisan.gitbooks.io/begining-text-mining-with-python/content/%E7%AC%AC4%E7%AB%A0%20% ...

  2. 常见的英文单词纠错法...

    常见的英文单词纠错法有:,主要有误拼词典法.词形距离法.最小编辑距离法.相似键法.骨架键法.N-gram法.基于规则的技术.词典及神经网络技术. (1)误拼字典法.收集大规模真实文本中拼写出错的英文单 ...

  3. 【python】TXT文本数据清洗和英文分词、词性标注

    去除空行 def clean_line(raw_file_name, save_file_name):with open(raw_file_name, 'r+') as f_r, open(save_ ...

  4. 词性标注POS tagging

    什么是词性标注,Part-of-speech tagging 比如下面一段标注过词性的文字文字,用空格分开后,/前面的是英文单词,后面表示它的词性. Confidence/NN in/IN the/D ...

  5. python将变量a全部变成大写字母_每天一个Python知识点:只用一招就将所有的英文单词首字母变成大写...

    摘要: 将英文单词首字母变成大写是一个古老的话题,很常用,也很简单.不过如何用更简单的方式批量完成这个工作,则有很多学问,不想来看看吗! 将英文单词首字母变成大写是非常常用的文本操作,使用capita ...

  6. 创新工场提出中文分词和词性标注模型,性能分别刷新五大数据集| ACL 2020​

    出品 | AI科技大本营(ID:rgznai100) 中文分词和词性标注是中文自然语言处理的两个基本任务.尽管以BERT为代表的预训练模型大行其道,但事实上,中文中基于全词覆盖 (whole word ...

  7. 文本预处理的基本方法(分词、词性标注、命名实体识别)

    文本预处理及其作用 文本语料在输送给模型前一般需要一系列的预处理工作, 才能符合模型输入的要求, 如: 将文本转化成模型需要的张量, 规范张量的尺寸等, 而且科学的文本预处理环节还将有效指导模型超参数 ...

  8. 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)

    pyltp的简介   语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...

  9. Python将所有的英文单词首字母变成大写

    将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文单词的首字母变成大写. 将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文 ...

最新文章

  1. Linux进程的分析和执行过程
  2. 直接运行可执行文件linux终端一闪而过
  3. redhat6.5 配置使用centos的yum源
  4. VTK:Texture之AnimateVectors
  5. 要学习数据科学知识,这些信息需要知道(数据)
  6. java与html关联_java-如何在HTML文件中搜索某些标签?
  7. 【NS2】在linux下安装低版本GGC
  8. bzoj1176: [Balkan2007]Mokia cdq
  9. 树分类、线性回归和树回归的感性认知
  10. Java异或运算和校验
  11. html采集插件如何用,火车采集器插件功能详解
  12. 耶鲁大学心态(估计是杜撰的) 送给正在奋斗的人
  13. 中国电信php,一个基于中国电信开放应用平台的短信发送函数(PHP版)
  14. KST-51单片机利用HC138芯片驱动数码管显示
  15. webpack项目安装与加载器常出现问题
  16. 大数据 SQL Boy 脱坑指南
  17. “驱动人生”利用高危漏洞传播病毒
  18. javascript 实现一小时倒计时计时器
  19. day-14 常用API
  20. 智力测试---20140731

热门文章

  1. Java-好玩的猜数小游戏
  2. 实现ensp的单臂路由
  3. 3.9 编写程序,模拟石头剪刀布游戏。程序随机产生一个数,这个数为2、1或0,分别表示石头剪刀和布。
  4. 各种二手及全新的光纤熔(融)接机,OTDR,光测试仪器仪表等
  5. Excel怎么换行?简单!Excel大神教会了我N种换行方法
  6. 滤波器的知识点(一)
  7. 钱包开发经验分享:BTC篇
  8. web应用开发入门_Web应用程序监视入门
  9. 2019届大疆提前批校招机器学习岗笔试B卷
  10. 局域网中使用来宾账户访问计算机