在网上抓取之后,我从Gutenberg.com获得了文本格式的儿童读物。 现在,我想分析一下这些词。但是我无法进行标记化,因为内容原来是列表列表。
内容如下:
raw[0]
[“仙境奇妙冒险”, “刘易斯·卡洛尔”, “千禧一代3.0版”, “第I章。 “爱丽丝开始厌倦了坐在姐姐身边,” “银行,无事可做:她曾经窥探过一两次”, “她姐姐正在读书的书,但里面没有照片或谈话”, “它,‘以及书的用途是什么,’爱丽丝想着,“没有图片或”, “对话?”, “因此,她正在考虑自己的想法(为此,她会尽其所能”), “炎热的日子使她感到非常困倦和愚蠢),无论是高兴还是消遣, “制造雏菊链值得起床麻烦,”, “挑选雏菊时,突然有一只白色兔子和粉红色的眼睛跑了出来,” “靠近她。”, “'敲门可能有些道理,'步兵继续说道', ...]
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?
答案 0 :(得分:0)
如果要标记整个内容,则可以尝试如下操作:
content = ' '.join(map(lambda l: ' '.join(l), raw))
tokens = word_tokenize(content)
首先将所有列表合并为一个文本,然后将其标记化。