我通过使用正则表达式从Twitter的流中收集一堆问题来挑选包含以问题类型开头的文本的任何推文:谁,什么,何时,何地等结束带问号。
因此,我最终在我的数据库中得到了几个无用的问题:“谁在乎?”,“这是什么?”等一些有用的东西,比如:'篮球比赛的频率是多少?','北极熊的重量是多少?'等
但是,我只对有用的问题感兴趣。
我有大约3000个问题,其中〜2000个没用,〜其中1000个是有用的,我手动标记它们。我试图使用一个朴素贝叶斯分类器(随NLTK一起)尝试自动分类问题,这样我就不必手动挑选出有用的问题。
首先,我尝试选择问题的前三个单词作为功能,但这并没有多大帮助。在100个问题中,分类器仅预测大约10%-15%对于有用的问题是正确的。它也未能从预测无效的问题中挑选出有用的问题。
我尝试了其他功能,例如:包括所有单词,包括问题的长度,但结果没有显着变化。
有关如何选择功能或继续进行的任何建议?
感谢。
答案 0 :(得分:13)
一些随机的建议。
this
,a
,of
,and
等停用词。How often is there a basketball fight
首先你删除一些停用词,你得到
how often basketball fight
对于上述句子,您可以计算每个单词的tf-idf分数:
tf-idf(how)
tf-idf(often)
tf-idf(basketball)
tf-idf(fight)
This可能有用。
>>> import nltk >>> text = nltk.word_tokenize(" How often is there a basketball fight") >>> nltk.pos_tag(text) [('How', 'WRB'), ('often', 'RB'), ('is', 'VBZ'), ('there', 'EX'), ('a', 'DT'), ('basketball', 'NN'), ('fight', 'NN')]
然后你可能有其他功能来尝试与pos-tags相关的功能。
!
跟随问题。#
FYI,qtweet的作者尝试了4种不同的分类器,即随机森林,SVM,J48和Logistic回归。随机森林中表现最好。
希望他们有所帮助。答案 1 :(得分:1)
您可以尝试构建的一个非常强大的功能(不确定是否可能)是否有回复相关推文。