首页 > 解决方案 > 如何在python中标记列表列表

问题描述

在网上搜索后,我从 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 呢?

标签: pythonnltktokenize

解决方案


如果你想标记整个内容,那么你可以尝试这样的事情:

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

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


推荐阅读