此python代码创建反映特定推文中是否存在给定关键字的功能。支持向量机 - 构建特征出字数和上下文
#get feature list stored in a file (for reuse)
featureList = getFeatureList('data/sampleTweetFeatureList.txt')
#start extract_features
def extract_features(tweet):
tweet_words = set(tweet)
features = {}
for word in featureList:
features['contains(%s)' % word] = (word in tweet_words)
return features
#end
和输出应该是这样的:
{
'contains(arm)': True, #notice this
'contains(articles)': False,
'contains(attended)': False,
'contains(australian)': False,
'contains(awfully)': False,
'contains(bloodwork)': True, #notice this
'contains(bombs)': False,
'contains(cici)': False,
.....
'contains(head)': False,
'contains(heard)': False,
'contains(hey)': False,
'contains(hurts)': True, #notice this
.....
'contains(irish)': False,
'contains(jokes)': False,
.....
'contains(women)': False
}
现在,我该如何着手建立的特征向量,如果设置也是功能包括(除了关键字出现如上图所示):
- 字在给定的鸣叫计数
- 语境,如“地震”的特殊关键字的。对于例如在'日本地震现在'这个例子中,围绕'地震'的左右字是'日本'和'现在'。
编辑:我想弄清楚的是,如何捕获这些信息(字数和上下文),以便获得SVM算法工作所需的矢量?直到现在我所拥有的是| featureList |中的矢量维度空间。我如何扩展它以包含字数和上下文?
我想知道的是,如何捕获这些信息(字数和上下文),以便获得SVM算法工作所需的矢量?直到现在我所拥有的是| featureList |中的矢量维度空间。我如何扩展它以包含字数和上下文? – dharm0us
对不起,我根本不知道SVM。 – Joe