Найти - Пользователи
Полная версия: Работа с текстом
Начало » Python для новичков » Работа с текстом
1
pushero
Всем привет! Просьба предложить изящное решение следующей задачи.
Имеется текстовый файл из n предложений. Необходимо составить список всех различных слов (пусть их d), входящих в текст. (Можно воспользоваться dict, но вдруг есть что-то поинтереснее).
Далее необходимо составить матрицу n X d, ijй элемент - это количество вхождений j-го слова в i-е предложение.
Как я понимаю можно считывать строки текста и далее катко заполнять список слов и матрицу.
Первое знакомство с питон показывает, что многие сложные вещи можно делать в одну строчку.
Вообщем, задача превратить текст в матрицу.
Спасибо!
scidam
pushero
Первое знакомство с питон показывает, что многие сложные вещи можно делать в одну строчку.

В одну строчку здесь вряд ли получится; вот приблизительно такой алгоритм можно использовать:

1) Составляем список всех известных слов с помощью re.findall, чтобы получить список уникальных слов - используем set.
2) Используя re.split нарезаем текст на предложения, полагая, что предложение заканчивается, если встречается символ точка, вопросит., воскл. знаки.
3) Итерируем по полученным предложениям, в каждом предложении с помощью re.findall ищем все слова, полученный массив слов для предложения подаем на collections.Counter, чтобы посчитать число вхождений слов в предложение.
4) Заполняем соответствующую строку матрицы тем, что содержит Counter для текущего предложения.

=== Думаю, на нулевом шаге алгоритма, можно и lowercase всему тексту сделать
evp24
ОНО?

Читал статью, не могу сейчас найти… Статья на хабре была хорошая
человек пробовал в матрицу загонять рейтинг “фильма” в твиттере (положительные/отрицательные) отзывы
py.user.next
pushero
(Можно воспользоваться dict, но вдруг есть что-то поинтереснее).
Надо использовать set().

pushero
Как я понимаю можно считывать строки текста и далее катко заполнять список слов и матрицу.
В два прохода надо делать: собрать все разные слова во множество; потом составить матрицу, отыскивая слова множества в каждом предложении.

На лету не сделаешь, так как размерность матрицы неизвестна до последней строки.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB