Как узнать время и дату или конкретное название продукта, используя NLTK?

doc = '''Andrew Yan-Tak Ng is a Chinese American computer scientist.He is the former chief scientist at Baidu, where he led the company's
Artificial Intelligence Group. He is an adjunct professor (formerly associate professor) at Stanford University. Ng is also the co-founder
and chairman at Coursera, an online education platform. Andrew was born in the UK on 27th Sep 2.30pm 1976. His parents were both from Hong Kong.'''

# tokenize doc
tokenized_doc = nltk.word_tokenize (doc)

# tag sentences and use nltk's Named Entity Chunker
tagged_sentences = nltk.pos_tag (tokenized_doc)
ne_chunked_sents = nltk.ne_chunk (tagged_sentences)

Когда вы обрабатываете и извлекаете чаки... Я вижу, что мы получаем только [('Andrew', 'PERSON'), ('Chinese', 'GPE'), ('American', 'GPE'), ('Baidu', ' ОРГАНИЗАЦИЯ '), ("Группа по искусственному интеллекту компании", "ОРГАНИЗАЦИЯ"), ("Стэнфордский университет", "ОРГАНИЗАЦИЯ"), ("Coursera", "ОРГАНИЗАЦИЯ"), ("Андрей", "ЧЕЛОВЕК"), (" Великобритания "," ОРГАНИЗАЦИЯ "), (" Гонконг "," GPE ")]

Мне тоже нужно узнать время и дату? Пожалуйста, предложите... Спасибо.

1 ответ

Решение

Вам нужен более изощренный тэджер, такой как Стэндфордский Именованный Тэджер. После того, как вы установили и настроили его, вы можете запустить его:

from nltk.tag import StanfordNERTagger
from nltk.tokenize import word_tokenize

stanfordClassifier = '/path/to/classifier/classifiers/english.muc.7class.distsim.crf.ser.gz'
stanfordNerPath = '/path/to/jar/stanford-ner/stanford-ner.jar'

st = StanfordNERTagger(stanfordClassifier, stanfordNerPath, encoding='utf8')

doc = '''Andrew Yan-Tak Ng is a Chinese American computer scientist.He is the former chief scientist at Baidu, where he led the company's Artificial Intelligence Group. He is an adjunct professor (formerly associate professor) at Stanford University. Ng is also the co-founder and chairman at Coursera, an online education platform. Andrew was born in the UK on 27th Sep 2.30pm 1976. His parents were both from Hong Kong.'''

result = st.tag(word_tokenize(doc))

date_word_tags = [wt for wt in result if wt[1] == 'DATE' or wt[1] == 'ORGANIZATION']

print date_word_tags

Где будет вывод:

[(u'Artificial', u'ORGANIZATION'), (u'Intelligence', u'ORGANIZATION'), (u'Group', u'ORGANIZATION'), (u'Stanford', u'ORGANIZATION'), (u'University', u'ORGANIZATION'), (u'Coursera', u'ORGANIZATION'), (u'27th', u'DATE'), (u'Sep', u'DATE'), (u'2.30pm', u'DATE'), (u'1976', u'DATE')]

Вы, вероятно, столкнетесь с некоторыми проблемами при попытке установить и настроить все, но я думаю, что это стоит хлопот.

Дайте мне знать, если это поможет.

Другие вопросы по тегам