私は文字列のリストを持っています。文字列に'#'文字が含まれている場合は、文字列の最初の部分を抽出し、文字列のこの部分からのみ単語トークンの頻度カウントを取得します。すなわち 文字列が文字列「#」が含まれていない場合は、文字列全体のトークンを返し、 期待されるトークンは、「最初の」ある「質問」Scikit Learn - CountVectorizerを使用して文字列区切り記号から単語トークンを抽出する
「stackoverflowの上の最初の質問#」であれば。
私はCountVectorizer
をscikitから使用しています。
私のコードの下に検索:
class MyTokenizer(object):
def __call__(self,s):
if(s.find('#')==-1):
return s
else:
return s.split('#')[0]
def FindKmeans():
text = ["first ques # on stackoverflow", "please help"]
vec = CountVectorizer(tokenizer=MyTokenizer(), analyzer = 'word')
pos_vector = vec.fit_transform(text).toarray()
print(vec.get_feature_names())`
output : [u' ', u'a', u'e', u'f', u'h', u'i', u'l', u'p', u'q', u'r', u's', u't', u'u']
Expected Output : [u'first', u'ques', u'please', u'help']
文書全体に '#'が含まれている場合や、 '#'を持つ単語を表示するだけの場合は、 'first''ques'の出現回数をカウントしますか? –
# –