Я использую CountVectorizer of Sklearn для преобразования моих строк в вектор. Однако CountVectorizer по умолчанию выбирает токены из 2 и более символов, а также игнорирует знаки препинания и считает их разделителями. Я хочу рассматривать даже один символ как токен, а также включать знаки препинания. Например:
aaa 1 2.75 zzz
aaa 2 3.75 www
Я хочу матрицу
1 1 1 0 1 1 0
1 0 1 1 0 0 1
Есть ли простой способ достичь этой цели?
Это сильно отличается от того, что я ищу. Я хочу сохранить '.' как часть токена, но ссылка предоставила регулярное выражение, которое учитывает '.' как отдельное слово
Вы можете использовать собственный токенизатор, как в этом примере:
import re
new_docs=["aaa 1 2.75 zzz","aaa 2 3.75 www"]
def my_tokenizer(text):
return re.split("\\s+",text)
cv = CountVectorizer(new_docs,tokenizer=my_tokenizer)
count_vector=cv.fit_transform(new_docs)
print(cv.vocabulary_)
Пример вывода:
{'aaa': 4, '1': 0, '2.75': 2, 'zzz': 6, '2': 1, '3.75': 3, 'www': 5}
Подробнее Примеры использования CountVectorizer здесь.
Я думаю, что хорошие предложения здесь vent = CountVectorizer(token_pattern=r"(?u)\b\w\w+\b|!|\?|\"|\'") stackoverflow.com/questions/39254134/…