首页 > 解决方案 > 在 Python 中从 epub 中提取文本

问题描述

我编写了以下代码来提取电子书的单词并将它们添加到语料库中以进行文本挖掘。

# loading the german corpus
from ebooklib import epub
import ebooklib
import os
import nltk
input_path = r"C:\Users\jzeh\Desktop\Directory"
german_corpus = []
book = epub.read_epub(os.path.join(input_path,'grimms-maerchen.epub'))
for doc in book.get_items():
    german_corpus += str(doc.content)
    german_corpus = [w.lower() for w in nltk.word_tokenize(german_corpus)]

不幸的是,运行代码给了我错误:

TypeError  ---> 12     german_corpus = [w.lower() for w in nltk.word_tokenize(german_corpus)]
TypeError: expected string or bytes-like object

谁能告诉我,我错过了什么?

标签: pythonnltktext-miningepub

解决方案


nltk.word_tokenize将字符串作为输入,您已将列表传递给它。如果我理解正确,我想你想要这个:

...

for doc in book.get_items():
    doc_content = str(doc.content)
    for w in nltk.word_tokenize(doc_content):
        german_corpus.append(w.lower())

推荐阅读