Files
2026-04-23 15:54:23 +08:00

37 lines
1.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from sklearn.feature_extraction.text import CountVectorizer
docs = [
"Python 是 编程 语言",
"Java 是 编程 语言",
"Python Python Python"
]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(docs)
print("词表Vocabulary")
print(vectorizer.get_feature_names_out())
print("\n每个文档的BoW向量")
for i, doc_vec in enumerate(X.toarray()):
print(f"Doc{i+1}: {doc_vec}")
# 6.BoW模型的缺点及场景问题
# 1. 忽略词序与上下文语义
# - 问题BoW仅统计词频不考虑词语顺序
# 例如"我喜欢Python"和"Python喜欢我"的BoW向量完全相同但语义相反
# 在情感分析、语义理解任务中会导致错误。
#
# 2. 无法处理一词多义/多词一义
# - 问题BoW将每个词视为独立符号无法识别"苹果"(水果/公司)的不同含义,
# 也无法识别"电脑"和"计算机"的同义关系,在语义检索、文本分类中会降低精度。
#
# 3. 向量稀疏且维度爆炸
# - 问题当语料库词汇量很大时向量维度会极高且大部分元素为0
# 增加计算开销,在大规模文本处理中效率低下。