【发布时间】:2015-07-19 21:55:27
【问题描述】:
我计划使用 Python NLTK 进行学术研究。特别是,我需要一种筛选 Twitter 用户的方法,并挑出那些在他们的个人资料中似乎没有使用“真实姓名”的用户。
我正在考虑使用默认的 NLTK 名称实体识别来区分使用看似真实姓名的 Twitter 用户和不使用真实姓名的 Twitter 用户。你觉得值得一试吗?还是我应该自己训练分类器?
import nltk
import re
import time
##contentArray0 =['Health Alerts', "Kenna Hill"]
contentArray =['ICU nurse toronto']
##let the fun begin!##
def processLanguage():
try:
for item in contentArray:
tokenized = nltk.word_tokenize(item)
tagged = nltk.pos_tag(tokenized)
print tagged
namedEnt = nltk.ne_chunk(tagged)
##namedEnt.draw()
time.sleep(1)
except Exception, e:
print str(e)
processLanguage()
编辑:我做了一些测试。似乎 nltk 主要通过单词的第一个字母是否大写来识别名称实体?例如,“ICU Nurse Toronto”将被 NNP 识别,而“ICU Nurse Toronto”则不会。这似乎过于简单,而且对我的目的(推特)不是很有用,因为许多使用实名的 Twitter 用户可能使用小写字母,而某些商业组织将使用大写的首字母。
【问题讨论】:
-
在正确的文本上训练 truecaser,然后在 twitter 文本上使用 truecaser
标签: python-2.7 classification nltk text-classification