Ich verwende die CountVectorizer
und möchte nicht getrennte Wörter in verschiedene Token trennen. Ich habe versucht, verschiedene Pregex-Muster in das token_pattern
Argument zu übergeben, aber war nicht in der Lage, das gewünschte Ergebnis zu erhalten.scikit-learn: Trenne nicht getrennte Wörter während der Tokenisierung
Hier ist, was ich versucht habe:
pattern = r''' (?x) # set flag to allow verbose regexps
([A-Z]\.)+ # abbreviations (e.g. U.S.A.)
| \w+(-\w+)* # words with optional internal hyphens
| \$?\d+(\.\d+)?%? # currency & percentages
| \.\.\. # ellipses '''
text = 'I hate traffic-ridden streets.'
vectorizer = CountVectorizer(stop_words='english',token_pattern=pattern)
analyze = vectorizer.build_analyzer()
analyze(text)
Ich habe auch nltk
‚versuchte s zu verwenden regexp_tokenize
wie in einer früheren Frage vorgeschlagen, aber es ist das Verhalten als auch geändert zu haben scheint.
Mögliche Duplikat http://stackoverflow.com/questions/25355046/using-nltk-regex-example-in-scikit-learn -counvectorizer –
@AbhinavArora Ich habe mir diese Lösung bereits angesehen. Die Lösung funktioniert nicht mit der neuesten Version von NLTK, d. H. 3.0.2 –
, wenn Sie andere als Regex verwenden können. Dies kann mit Rechen erreicht werden. – vinod