Scikit Learn Count Vectorizer не находит все токены

У меня есть набор данных из 129 013 файлов, и я хочу закодировать их аналогичным образом, то есть одна встречающаяся строка - это один токен. Я использовал countVectorizer от scikit learn и пошел с

vec = CountVectorizer(input='filename', token_pattern='.+')
dtm = vec.fit_transform(all_paths) # all paths is a list with all filename paths
print(dtm.shape) # (129013 , 541107)

В исследовательской работе, на которую ссылается набор данных, авторы говорят о 545333 различных токенах, т.е. мой токенизатор не уловил все. Чтобы проверить, что мой набор данных завершен, я побежал

for f in *; do cat $f; done | sort | uniq | wc -l
545333

в оболочке bash, указывающей, что все есть. Что мне здесь не хватает?

1 ответ

Если кто-то еще сталкивается с подобной проблемой, CountVectorizer имеет строчный параметр, который по умолчанию равен True. С помощью

vec = CountVectorizer(input='filename', token_pattern='.+', lowercase=False)

решил проблему.

Другие вопросы по тегам