python - 在 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
谁能告诉我,我错过了什么?
解决方案
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())
推荐阅读
- codenameone - 如何处理组件及其容器中的指针事件?
- rpm - 安装 rpm 包时替换现有目录及其所有内容
- java - 全新安装的 Ubuntu 16.04 LTS 服务器和升级的服务器之间的编码问题
- php - 网络服务器上的 NumberFormatter 输出错误,而不是另一个
- python - 如何在不使用 refresh_from_db 的情况下强制 Django 模型在保存后重新加载字段?
- eclipse - 如何从 Eclipse 中自动编译和运行 xtext mydsl 应用程序?
- java - 如何测试异步方法
- javascript - 将 $.each 和 $.getJSON 转换为 vanilla javascript
- javascript - 多个 Javascript 文件不起作用
- c++ - 模板函数重载。理解字符