python - 如何在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 呢?
解决方案
如果你想标记整个内容,那么你可以尝试这样的事情:
content = ' '.join(map(lambda l: ' '.join(l), raw))
tokens = word_tokenize(content)
首先将所有列表合并为一个文本,然后将其标记化。
推荐阅读
- json - 如何使用 JSON 过滤器插件在 Logstash 中的 JSON 中分离消息?
- swift - swiftui删除核心数据行
- python - PyCharm 连接到 python 控制台时速度很慢
- javascript - 如何将文件对象下载给用户?
- amazon-web-services - 如何使用现有 VPC 创建 aws_instance?
- php - 我应该使用加密还是散列来生成自定义参考 ID?
- java - Eclipse 服务器服务遇到错误
- r - R中多列的自相关
- buffer - can rx fifo 的优势是什么?
- javascript - 带有 JavaScript 静态的 Django 汉堡菜单