对英文单词的词性标注
QQ:66781877
1.前言
最近的一个项目有个需求是这样的,需要从一篇英文文章或者一段英文文字中提取出其中的形容词(adjective),即对单词进行词性标注,我看到这个需求,第一反应是这肯定是个自然语言处理的问题。首先需要对句子进行分词,英文的分词是很容易的,但是分词之后,对于词性的判断,我最初的想法是,找一个英文字典,然后将单词输入,在字典中进行词性的查找。
先不说这种方法词性判断的准确率,从效率上来说,这样去对单词按词性分类,速度是很慢的。于是我继续查找资料,发现,对中文的词性判断,是有开源的解决方案的,如一些中文分词器:jcseg等等。但是对英文单词的词性标注,这些中文分词器是没有做到的,至少我目前没有找到。
既然中文分词器能对中文进行词性标注,那么英文分词器是否能对英文进行词性标注呢?很遗憾,我在lucene中,并没有找到相关的API,于是乎,我只能寻求其它解决办法。
进过一番努力,我从Stanford University的自然语言处理小组网站上找到了一个开源的英文词性标注工具,大喜过望,看了相关的介绍文档之后,运行了例子程序,发现分词的准确率是很高的,而且速度很快。
2.程序及说明
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 ./.
对英文单词的词性标注相关推荐
- 4.2 英文分词及词性标注
转载自: https://datartisan.gitbooks.io/begining-text-mining-with-python/content/%E7%AC%AC4%E7%AB%A0%20% ...
- 常见的英文单词纠错法...
常见的英文单词纠错法有:,主要有误拼词典法.词形距离法.最小编辑距离法.相似键法.骨架键法.N-gram法.基于规则的技术.词典及神经网络技术. (1)误拼字典法.收集大规模真实文本中拼写出错的英文单 ...
- 【python】TXT文本数据清洗和英文分词、词性标注
去除空行 def clean_line(raw_file_name, save_file_name):with open(raw_file_name, 'r+') as f_r, open(save_ ...
- 词性标注POS tagging
什么是词性标注,Part-of-speech tagging 比如下面一段标注过词性的文字文字,用空格分开后,/前面的是英文单词,后面表示它的词性. Confidence/NN in/IN the/D ...
- python将变量a全部变成大写字母_每天一个Python知识点:只用一招就将所有的英文单词首字母变成大写...
摘要: 将英文单词首字母变成大写是一个古老的话题,很常用,也很简单.不过如何用更简单的方式批量完成这个工作,则有很多学问,不想来看看吗! 将英文单词首字母变成大写是非常常用的文本操作,使用capita ...
- 创新工场提出中文分词和词性标注模型,性能分别刷新五大数据集| ACL 2020
出品 | AI科技大本营(ID:rgznai100) 中文分词和词性标注是中文自然语言处理的两个基本任务.尽管以BERT为代表的预训练模型大行其道,但事实上,中文中基于全词覆盖 (whole word ...
- 文本预处理的基本方法(分词、词性标注、命名实体识别)
文本预处理及其作用 文本语料在输送给模型前一般需要一系列的预处理工作, 才能符合模型输入的要求, 如: 将文本转化成模型需要的张量, 规范张量的尺寸等, 而且科学的文本预处理环节还将有效指导模型超参数 ...
- 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)
pyltp的简介 语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...
- Python将所有的英文单词首字母变成大写
将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文单词的首字母变成大写. 将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文 ...
最新文章
- Linux进程的分析和执行过程
- 直接运行可执行文件linux终端一闪而过
- redhat6.5 配置使用centos的yum源
- VTK:Texture之AnimateVectors
- 要学习数据科学知识,这些信息需要知道(数据)
- java与html关联_java-如何在HTML文件中搜索某些标签?
- 【NS2】在linux下安装低版本GGC
- bzoj1176: [Balkan2007]Mokia cdq
- 树分类、线性回归和树回归的感性认知
- Java异或运算和校验
- html采集插件如何用,火车采集器插件功能详解
- 耶鲁大学心态(估计是杜撰的) 送给正在奋斗的人
- 中国电信php,一个基于中国电信开放应用平台的短信发送函数(PHP版)
- KST-51单片机利用HC138芯片驱动数码管显示
- webpack项目安装与加载器常出现问题
- 大数据 SQL Boy 脱坑指南
- “驱动人生”利用高危漏洞传播病毒
- javascript 实现一小时倒计时计时器
- day-14 常用API
- 智力测试---20140731