Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 6, 2017 09:18:14

pushero
Зарегистрирован: 2017-08-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с текстом

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

Офлайн

#2 Авг. 6, 2017 13:28:22

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Работа с текстом

pushero
Первое знакомство с питон показывает, что многие сложные вещи можно делать в одну строчку.

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

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

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

Офлайн

#3 Авг. 6, 2017 13:46:47

evp24
Зарегистрирован: 2017-05-03
Сообщения: 96
Репутация: +  3  -
Профиль   Отправить e-mail  

Работа с текстом

ОНО?

Читал статью, не могу сейчас найти… Статья на хабре была хорошая
человек пробовал в матрицу загонять рейтинг “фильма” в твиттере (положительные/отрицательные) отзывы

Офлайн

#4 Авг. 7, 2017 01:35:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа с текстом

pushero
(Можно воспользоваться dict, но вдруг есть что-то поинтереснее).
Надо использовать set().

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

На лету не сделаешь, так как размерность матрицы неизвестна до последней строки.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version