如何在python中标记列表列表

时间:2019-04-16 16:54:04

标签: python nltk tokenize

在网上抓取之后,我从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?

1 个答案:

答案 0 :(得分:0)

如果要标记整个内容,则可以尝试如下操作:

content = ' '.join(map(lambda l: ' '.join(l), raw))
tokens = word_tokenize(content)

首先将所有列表合并为一个文本,然后将其标记化。