Page 45 - 高中 信息技术 选择性必修4 人工智能初步
P. 45
2.3 自然语言处理
④统一大小写。
处理上述两条评论之后,将得到如下两个结果。
[['top', '5', 'most', 'searched', 'for', 'back', '-', 'to', '-', 'school', 'topics', '--', 'the', 'list',
'may', 'surprise', 'you', '.'], ['back', 'to', 'school', '.']]
[['we', 'have', 'an', 'iot', 'workshop', 'by', 'at', '11pm', 'on', 'the', 'friday', '-', 'definitely',
'worth', 'going', 'for', 'inspiration', '!'], ['.'], ['hack', 'the', 'planet', '.']]
(2)创建词袋。
然后,我们根据训练数据集创建一个词袋(Bag-of-Word,简称BOW)。词袋
广东教育出版社
是一个字典,里面存储着所有训练数据集中出现过的词汇,以及它们在全文中出现
的频数。这样做的目的,是为了剔除那些在全部训练数据集中极少出现的词汇(生
僻词),以及那些频繁出现但毫无意义的词汇,或称之为停词(Stop Words),例如
“the”“of”“a”等。
(3)创建特征字典。
接下来,为每条评论创建特征字典(Dictionary)。特征字典是指每条评论中出现在词袋
(剔除了罕见的生僻词和停词)中的词,以及它们在该条评论中出现的频数构成的字典。
{'-': 2, '--': 1, '.': 2, '5': 1, 'back': 2, 'list': 1, 'may': 1, 'school': 2, 'searched': 1, 'surprise':
1, 'top': 1, 'topics': 1}
{'!': 1, '-': 1,? '.': 2, '11pm': 1, 'definitely': 1, 'friday': 1, 'going': 1, 'hack': 1, 'inspiration':
1, 'iot': 1, 'planet': 1, 'workshop': 1, 'worth': 1}
2. 提取特征
到此为止,所有的预处理工作都已经完成了。我们得到了字典列表形式的训练数据集
和测试数据集,以及它们对应的标签列表。然而,这种形式的数据还不能被直接使用,还
需要借助Scikit-learn中提供的特征提取(Feature Extraction)模块。
Scikit-learn的特征模块可用于从由文本和图像等格式组成的数据集中提取特征,且这
种特征格式可用于机器学习算法中。
还可借用DictVectorizer( )函数:
DictVectorizer( )函数可将表示为标准Python字典对象列表的特征数组转换为可在
Scikit-learn中使用的NumPy与SciPy形式。
vec=DictVectorizer( )
sparse_matrix_tra=vec.fit_transform(feature_dicts_tra)
sparse_matrix_dev=vec.transform(feature_dicts_dev)
37 37
21Y3228.indd 37 2019/10/10 14:23:29