数据准备&使用SVM为命名实体选择功能

时间:2014-11-29 10:53:26

标签: python nltk svm named-entity-recognition

我有一些用户评论数据,我想从中找到消费者电子品牌的名称。 例如,考虑这些ne_chinked例句,谈论“PS4”,“诺基亚720 lumia”,“苹果ipad”,“sony bravia”: -

In [52]: nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize('When is the PS4 releasing')))
Out[52]: Tree('S', [('When', 'WRB'), ('is', 'VBZ'), ('the', 'DT'), Tree('ORGANIZATION', [('PS4', 'NNP')]), ('releasing', 'NN')])

In [53]: nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize('I couldnt find the nokia 720 lumia in stores')))
Out[53]: Tree('S', [('I', 'PRP'), ('couldnt', 'VBP'), ('find', 'JJ'), ('the', 'DT'), ('nokia', 'NN'), ('720', 'CD'), ('lumia', 'NN'), ('in', 'IN'), ('stores', 'NNS')])

In [54]: nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize('I just bought apple ipad and its really awesome')))
Out[54]: Tree('S', [('I', 'PRP'), ('just', 'RB'), ('bought', 'VBD'), ('apple', 'JJ'), ('ipad', 'NN'), ('and', 'CC'), ('its', 'PRP$'), ('really', 'RB'), ('awesome', 'JJ')])

In [55]: nltk.ne_chunk(nltk.pos_tag(nltk.word_tokenize('I would like to buy 1 Sony bravia led television')))
Out[55]: Tree('S', [('I', 'PRP'), ('would', 'MD'), ('like', 'VB'), ('to', 'TO'), ('buy', 'VB'), ('1', 'CD'), ('Sony', 'NNP'), ('bravia', 'IN'), ('led', 'VBN'), ('television', 'NN')])  

问题是如何表示svm要学习的数据。我阅读了数十篇研究论文,但没有人披露他们如何将这些特征数据表示给svm。 有人可以帮忙吗

1 个答案:

答案 0 :(得分:0)

我要做的是在列表中添加您关注的电子品牌的所有条目,然后为了使每个条目都是唯一的,我会在列表中使用其条目索引作为功能。

e.g。     ['诺基亚',' Apple',' Microsoft']

然后:     诺基亚=> 1     Microsoft => 2等

这有助于为每个品牌提供独特的代表性,因此我可以在其他方面为SVM提供一个功能。