2017-03-18 3 views
1

「1:1」というフレーズを含むテキストがある場合。それをトークンとして認識させるには、どうすればCountVectorizerを取得しますか?CountVectorizerに「1:1」を含める

text = ["first ques # 1:1 on stackoverflow", "please help"] 
vec = CountVectorizer() 
vec.fit_transform(text) 

vec.get_feature_names() 

答えて

1

カスタマイズされたトークナイザを使用できます。簡単な例は

vec = CountVectorizer(tokenizer=lambda s: s.split()) 

によって

vec = CountVectorizer() 

を交換するために行うだろう。この変更では、あなたのコードを返します:

[u'#', u'1:1', u'first', u'help', u'on', u'please', u'ques', u'stackoverflow'] 

がうまくいけば、この提案は正しい軌道に乗ってあなたを置くが、(あなたのテキストが句読点を持っている場合など)、そのような問題を回避するには、より複雑な場合には適切に動作しないことがわかります。句読点マークに対処するために

、あなたはCountVectorizerは、このようなトークンパターン渡すことができます。

text = [u"first ques... # 1:1, on stackoverflow", u"please, help!"] 
vec = CountVectorizer(token_pattern=u'\w:?\w+') 

出力:私のテキストが句読点を持っている場合は、yオプションをAREM何

[u'1:1', u'first', u'help', u'on', u'please', u'ques', u'stackoverflow'] 
+0

うん、? – Huey

関連する問題