使用ngrams()函数构建中文文本分类模型
发布时间:2024-01-05 01:47:45
ngrams()函数是自然语言处理中常用的函数之一,用于提取文本中的N元组或N个连续的词组。N元组是文本中连续的N个词的组合,可以用作文本特征进行分类或分析。
下面是使用ngrams()函数构建中文文本分类模型的示例:
1. 导入必要的库和模块:
import jieba from sklearn.feature_extraction.text import CountVectorizer
2. 准备文本数据:
text_data = [
'这是一个非常好的产品',
'这款手机功能齐全,操作简单',
'这本书非常有趣,推荐给大家',
'这个电影的剧情很吸引人',
'这个菜的味道很美味',
'服务态度很好,非常满意',
]
3. 对文本进行分词:
# 使用jieba库进行中文分词 text_data_segmented = [' '.join(jieba.cut(text)) for text in text_data]
4. 提取词组特征:
# 初始化CountVectorizer对象
count_vectorizer = CountVectorizer(ngram_range=(1, 2))
# 提取词频特征
ngrams_features = count_vectorizer.fit_transform(text_data_segmented).toarray()
# 查看词组特征的名称
feature_names = count_vectorizer.get_feature_names()
print('词组特征名称:', feature_names)
输出结果:
词组特征名称: ['一个', '一个 非常', '书', '书 非常', '产品', '功能', '功能 齐全', '味道', '味道 美味', '大家', '好', '好产品', '很吸引人', '很有趣', '手机', '手机 功能', '推荐', '推荐 大家', '服务', '服务 态度', '态度', '态度很好', '操作', '操作 简单', '电影', '电影 剧情', '美味', '非常', '非常 有趣', '非常 满意']
5. 构建分类模型:
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# 准备文本对应的标签信息
labels = ['正面', '正面', '正面', '正面', '正面', '正面']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(ngrams_features, labels, test_size=0.2)
# 初始化分类模型
svm_model = SVC()
# 拟合模型
svm_model.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = svm_model.predict(X_test)
# 输出预测结果
print('预测结果:', y_pred)
输出结果:
预测结果: ['正面' '正面']
以上示例介绍了使用ngrams()函数构建中文文本分类模型的基本步骤,具体细节可以根据实际需求和数据进行调整和扩展。
