标签: named-entity-recognition

Apple如何在电子邮件中查找日期,时间和地址?

在iOS电子邮件客户端中,当电子邮件包含日期,时间或位置时,文本将成为超链接,只需点击链接即可创建约会或查看地图.它不仅适用于英语电子邮件,也适用于其他语言.我喜欢这个功能,想了解他们是如何做到的.

这样做的天真方法是拥有许多正则表达式并运行它们.但是我不能很好地扩展它并且只适用于特定的语言或日期格式等.我认为Apple必须使用一些机器学习的概念来提取实体(晚上8点,晚上8点,8点, 0800,20:00,20h,20h00,2000等).

知道Apple如何能够在其电子邮件客户端中如此快速地提取实体?您将应用什么机器学习算法来完成这样的任务?

nlp machine-learning named-entity-recognition information-extraction

128
推荐指数
4
解决办法
2万
查看次数

NLTK使用自定义数据命名实体识别

我正在尝试使用NLTK从我的文本中提取命名实体.我发现NLTK NER对我的目的不是很准确,我想添加一些我自己的标签.我一直在努力寻找培养自己的NER的方法,但我似乎无法找到合适的资源.我有几个关于NLTK的问题 -

  1. 我可以使用自己的数据来训练NLTK中的命名实体识别器吗?
  2. 如果我可以使用自己的数据进行训练,那么named_entity.py文件是否需要修改?
  3. 输入文件格式是否必须在IOB中.Eric NNP B-PERSON?
  4. 有没有任何资源 - 除了nltk cookbook和我可以使用的python nlp?

我真的很感谢这方面的帮助

python nlp named-entity-recognition nltk

47
推荐指数
2
解决办法
2万
查看次数

BILOU标签在命名实体识别中意味着什么?

标题几乎总结了这个问题.我注意到在一些论文中,人们提到了NER的BILOU编码方案,而不是典型的BIO标记方案(例如Ratinov和Roth在2009年的这篇论文http://cogcomp.cs.illinois.edu/page/publication_view/199)

从使用2003 CoNLL数据开始,我知道这一点

B stands for 'beginning' (signifies beginning of an NE)
I stands for 'inside' (signifies that the word is inside an NE)
O stands for 'outside' (signifies that the word is just a regular word outside of an NE)
Run Code Online (Sandbox Code Playgroud)

虽然我被告知BILOU中的单词代表

B - 'beginning'
I - 'inside'
L - 'last'
O - 'outside'
U - 'unit'
Run Code Online (Sandbox Code Playgroud)

我也看到人们引用另一个标签

E - 'end', use it concurrently with the 'last' tag
S - 'singleton', use it concurrently with the 'unit' tag …
Run Code Online (Sandbox Code Playgroud)

nlp named-entity-recognition

36
推荐指数
2
解决办法
1万
查看次数

用于Java的命名实体识别库

我正在为java寻找一个简单但"足够好"的命名实体识别库(和字典),我希望处理电子邮件和文档并提取一些"基本信息",如:名称,地点,地址和日期

我一直在环顾四周,而且大多数人似乎都处于沉重的一面和完整的NLP项目中.

有什么建议?

java nlp named-entity-recognition

27
推荐指数
2
解决办法
2万
查看次数

用于命名实体识别的NLTK

我正在尝试使用NLTK工具包从文本消息中获取提取位置,日期和时间.我刚刚在我的机器上安装了工具包,我编写了这个快速片段来测试它:

sentence = "Let's meet tomorrow at 9 pm";
tokens = nltk.word_tokenize(sentence)
pos_tags = nltk.pos_tag(tokens)
print nltk.ne_chunk(pos_tags, binary=True)
Run Code Online (Sandbox Code Playgroud)

我假设它将确定日期(明天)和时间(晚上9点).但令人惊讶的是,它未能认识到这一点.运行上面的代码时,我得到以下结果:

(S (GPE Let/NNP) 's/POS meet/NN tomorrow/NN at/IN 9/CD pm/NN)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我理解我是否遗漏了某些东西,或者NLTK还不够成熟,无法正确标记时间和日期.谢谢!

text-processing nlp machine-learning named-entity-recognition nltk

27
推荐指数
2
解决办法
2万
查看次数

是否有可能训练斯坦福NER系统识别更多命名的实体类型?

我现在正在使用一些NLP库,(stanford和nltk)斯坦福我看过演示部分,但只是想问一下是否有可能用它来识别更多的实体类型.

因此,目前斯坦福NER系统(如演示所示)可以将实体识别为人(姓名),组织或位置.但被认可的组织仅限于大学或一些大型组织.我想知道我是否可以使用它的API为更多实体类型编写程序,例如,如果我的输入是"Apple"或"Square",它可以将其识别为公司.

我是否必须制作自己的训练数据集?

此外,如果我想要提取实体及其彼此之间的关系,我觉得我应该使用stanford依赖解析器.我的意思是,首先提取命名实体和标记为"名词"的其他部分,并找出它们之间的关系.

我对么.

谢谢.

nlp named-entity-recognition stanford-nlp

27
推荐指数
3
解决办法
2万
查看次数

使用NLTK中的Stanford NER Tagger提取人员和组织列表

我正在尝试使用Python NLTK中的Stanford Named Entity Recognizer(NER)提取人员和组织的列表.当我跑:

from nltk.tag.stanford import NERTagger
st = NERTagger('/usr/share/stanford-ner/classifiers/all.3class.distsim.crf.ser.gz',
               '/usr/share/stanford-ner/stanford-ner.jar') 
r=st.tag('Rami Eid is studying at Stony Brook University in NY'.split())
print(r) 
Run Code Online (Sandbox Code Playgroud)

输出是:

[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'),
('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'),
('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'LOCATION')]
Run Code Online (Sandbox Code Playgroud)

我想要的是从这个列表中提取这种形式的所有人和组织:

Rami Eid
Sony Brook University
Run Code Online (Sandbox Code Playgroud)

我试图循环遍历元组列表:

for x,y in i:
        if y == 'ORGANIZATION':
            print(x)
Run Code Online (Sandbox Code Playgroud)

但是这段代码只打印每行一个实体:

Sony 
Brook 
University
Run Code Online (Sandbox Code Playgroud)

对于真实数据,可以有多个组织,一个句子中的人,我如何在不同实体之间设置限制?

python named-entity-recognition nltk stanford-nlp

24
推荐指数
2
解决办法
2万
查看次数

命名实体识别的算法

我想使用命名实体识别(NER)来为数据库中的文本找到足够的标签.

我知道维基百科有关于此的文章以及许多描述NER的其他页面,我最好从您那里听到有关此主题的内容:

  • 您使用各种算法有什么经验?
  • 你会推荐哪种算法?
  • 哪种算法最容易实现(PHP/Python)?
  • 如何算法工作?是否需要手动培训?

例:

"去年,我在伦敦看到巴拉克奥巴马." =>标签:伦敦,巴拉克奥巴马

我希望你能帮助我.非常感谢你提前!

php python analysis extract named-entity-recognition

22
推荐指数
1
解决办法
8819
查看次数

使用Stanford NLP训练n-gram NER

最近,我一直在尝试使用Stanford Core NLP训练n-gram实体.我已经按照以下教程 - http://nlp.stanford.edu/software/crf-faq.shtml#b

有了这个,我只能指定unigram令牌及其所属的类.任何人都可以指导我,以便我可以将它扩展到n-gram.我试图从聊天数据集中提取电影名称等已知实体.

如果我错误地解释了斯坦福教程,请指导我,同样可以用于n-gram培训.

我坚持的是以下属性

#structure of your training file; this tells the classifier
#that the word is in column 0 and the correct answer is in
#column 1
map = word=0,answer=1
Run Code Online (Sandbox Code Playgroud)

例如,第一列是单词(unigram),第二列是实体

CHAPTER O
I   O
Emma    PERS
Woodhouse   PERS
Run Code Online (Sandbox Code Playgroud)

现在我需要训练像Hulk,Titanic等已知实体(比如电影名称)作为电影,这种方法很容易.但是如果我需要训练我知道你去年夏天做什么或者宝宝出去什么,最好的办法是什么?

nlp named-entity-recognition stanford-nlp named-entity-extraction opennlp

21
推荐指数
2
解决办法
1万
查看次数

Python中NLTK的命名实体识别.识别NE

我需要将单词分类到他们的词性中.像动词,名词,副词等.我用过

nltk.word_tokenize() #to identify word in a sentence 
nltk.pos_tag()       #to identify the parts of speech
nltk.ne_chunk()      #to identify Named entities. 
Run Code Online (Sandbox Code Playgroud)

这是一棵树.例如

>>> sentence = "I am Jhon from America"
>>> sent1 = nltk.word_tokenize(sentence )
>>> sent2 = nltk.pos_tag(sent1)
>>> sent3 =  nltk.ne_chunk(sent2, binary=True)
>>> sent3
Tree('S', [('I', 'PRP'), ('am', 'VBP'), Tree('NE', [('Jhon', 'NNP')]), ('from', 'IN'), Tree('NE', [('America', 'NNP')])])
Run Code Online (Sandbox Code Playgroud)

访问此树中的元素时,我按如下方式执行:

>>> sent3[0]
('I', 'PRP')
>>> sent3[0][0]
'I'
>>> sent3[0][1]
'PRP'
Run Code Online (Sandbox Code Playgroud)

但是在访问命名实体时:

>>> sent3[2]
Tree('NE', [('Jhon', 'NNP')])
>>> sent3[2][0]
('Jhon', 'NNP')
>>> …
Run Code Online (Sandbox Code Playgroud)

python nlp named-entity-recognition nltk

20
推荐指数
1
解决办法
1万
查看次数