Ich habe eine Liste von Zeichenfolgen. Wenn eine Zeichenkette das '#' Zeichen enthält, dann möchte ich den ersten Teil der Zeichenkette extrahieren und die Häufigkeitszählung von Wort-Token nur von diesem Teil der Zeichenkette erhalten. dh, wenn die Zeichenfolge „erste Frage # auf Stackoverflow“ ist erwartete Token sind „erster“, „Frage“Scikit Learn - Extrahieren Sie Wort-Token aus einem Zeichenfolgebegrenzer mit CountVectorizer
Wenn die Zeichenfolge nicht enthalten ‚#‘ dann wieder Token des gesamten Zeichenfolge .
Um den Begriff Dokumentenmatrix zu berechnen verwende ich CountVectorizer
von scikit.
unter meinem Code finden:
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']
Möchten Sie das Auftreten von 'first'' ques zählen, wenn die Zeile '' 'im gesamten Dokument enthält oder nur um die Wörter anzuzeigen, die' # 'haben? –
Ich möchte das Auftreten von Token der Teilzeichenfolge zählen, wenn die Zeile # enthält, sowie das Auftreten von Token aus der gesamten Zeichenfolge, wenn sie # –