【发布时间】:2019-04-16 16:54:03
【问题描述】:
在网上搜索后,我从 Gutenberg.com 获得了文本格式的儿童读物。 现在我想分析一下单词。但是我没有进行标记化,因为内容原来是列表列表。
内容如下:
raw[0]
[“爱丽丝梦游仙境”, '刘易斯卡罗尔', '千年支点版 3.0', '第一章. 落入兔子洞', “爱丽丝开始厌倦坐在她姐姐身边”, “银行,无事可做:她曾经偷窥过一两次”, “她姐姐正在读的书,但里面没有图片或对话”, '它,'一本书有什么用,'爱丽丝想,'没有图片或', “对话?”, “所以她在自己的脑海中考虑(尽她所能,为了”, '炎热的一天让她感到非常困倦和愚蠢),无论是快乐', '制作菊花链值得费力起床', '采摘雏菊,突然一只粉红色眼睛的白兔跑了', '在她身边', “你的敲门声可能有些道理,”步兵继续说, ...]
import nltk
import pickle
with open('tokens.data', 'rb') as filehandle:
# read the data as binary data stream
raw = pickle.load(filehandle)
raw[0]
len(raw) -> 407 Which means we got 407 children's book.
type(raw) -> List Each list stands for one book.
from nltk.tokenize import sent_tokenize, word_tokenize
tokenized_sents = [word_tokenize(i) for i in raw[0]]
for i in tokenized_sents:
print (i)
['ALICE', '’', 'S', 'ADVENTURES', 'IN', 'WONDERLAND']
['Lewis', 'Carroll']
['THE', 'MILLENNIUM', 'FULCRUM', 'EDITION', '3.0']
......
['remembering', 'her', 'own', 'child-life', ',', 'and', 'the', 'happy',
'summer', 'days', '.']
['THE', 'END']
问题是我只能像 raw[0], raw[1], ...... 那么如何在其中应用 lambda 呢?
【问题讨论】:
-
你在
tokens.data里放了什么?没有这些信息,只有读心者才能帮助您。 -
从古腾堡网站你应该得到纯文本,而不是泡菜。我建议你去nltk.org/book` 开始阅读。 nltk 还提供了许多古腾堡书籍作为即用型语料库,因此您可以轻松开始。
-
如果你想将你的列表扁平化为一个列表,你可能希望看到stackoverflow.com/questions/952914/…
-
在tokens.data里面有407本列表格式的童书。所以这就是我们必须使用pickle的原因。