Как сделать корпус файлов в текстовом формате на основе анализа текста и заголовков из документов MS Word в Python? - PullRequest
0 голосов
/ 20 сентября 2019

Я занимаюсь предварительной обработкой / подготовкой пакета документов MS Word, который я автоматически преобразовал из .doc в .docx, чтобы позже использовать их для обучения модели NLP с распознаванием сущностей.Я новичок в Python-программировании, а также в Spacy-NLP, но у меня есть некоторый опыт программирования на других языках, но сейчас мой самый большой вопрос, который заставляет меня чувствовать себя так: «Я не знаю, что делать или как это делать»"это: у меня есть документы в папке.Мне нужно проанализировать необработанный текст и заголовки (которые указаны в названии самого документа, а не в первой строке документа), чтобы создать корпус, который будет использоваться в дальнейшем для обучения NLP-модели.

Поскольку я новичок, мне есть чему поучиться.Так что я уже провел много исследований на эту тему.Вначале мне было больно в *** преобразовывать все эти .doc-файлы в .docx-файлы, но я наконец нашел способ сделать это.Поскольку мне нужно получить заголовок и текст из пачки документов, я предположил, что мне нужно «пройтись» по документам в папке, используя цикл for, что я и сделал следующим образом:

path = '/path/to/folder'
for filename in os.listdir(path):
    if filename.endswith('.docx'):
        path = os.path.join(path, filename)

Я также попробовал то, что нашел в этой ссылке на стек (используя нативный модуль python-docx): извлечение текста из файлов MS Word в python

Но это дало мне эту ошибку TypeError: элемент последовательности 0: ожидаемый экземпляр str, найдены байты

edit: Проблема TypeError решена, я снова попробовал 3 различных способа извлечения текста из документа Word, и это дало мне лучшеевывод (без ошибок):

´´´
import docx
def getText(filename):
    doc = docx.Document(filename)
    fullText = []
    for para in doc.paragraphs:
    fullText.append(para.text)
return '\n'.join(fullText)

print(getText('test.docx'))

´´´ Итак, теперь я (наконец) знаю, как сделать хорошее извлечение текста из документа Word.Мне все еще нужно выяснить, как сделать это для всей папки и каковы мои следующие шаги в процессе, чтобы создать корпус, который будет использоваться для НЛП.

Кстати.Я использую Pycharm в виртуальной машине Ubuntu 18.04 и Python версии 3.6.

(я также немного по-другому объяснил свою проблему в этом посте https://python -forum.io /Thread-Data-extract-from-множественный-MS-Word-файл-s-in-python (см. Комментарий № 9). Я отправил это вчера, это было до того, как опробовать то, что я нашел в stackoverflow-ссылка.)

Может ли кто-нибудь дать мне представление о том, как можно извлечь заголовки из документа MS Word, чтобы создать набор файлов для использования в SpaCy?

Большое спасибо, что нашли время.

...