上传文件至 /

This commit is contained in:
2026-04-23 16:02:44 +08:00
parent cc5eb409f6
commit 6129e07ebe
2 changed files with 291 additions and 0 deletions

50
Y.py Normal file
View File

@@ -0,0 +1,50 @@
docs = [
"Python 是 编程 语言", # Doc1
"Java 是 编程 语言", # Doc2
"Python Python Python" # Doc3
]
tokenized_docs = [doc.split() for doc in docs]
print("分词后的文档:")
for i, tokens in enumerate(tokenized_docs, 1):
print(f"Doc{i}: {tokens}")
vocab = []
for tokens in tokenized_docs:
for token in tokens:
if token not in vocab:
vocab.append(token)
print("\nBoW词表", vocab)
bow_vectors = []
for tokens in tokenized_docs:
vector = [tokens.count(word) for word in vocab]
bow_vectors.append(vector)
print("\n每个文档的BoW向量")
for i, vec in enumerate(bow_vectors, 1):
print(f"Doc{i}: {vec}")
print("\n" + "="*50)
print("题目6BoW模型的缺点至少2个")
print("="*50)
print("""
1. 完全忽略词序与上下文语义
- 原理BoW把文档当成「无序词汇袋」完全丢失词汇顺序、语法、上下文关系
- 问题场景:
句子A"我喜欢苹果 不喜欢香蕉"
句子B"我喜欢香蕉 不喜欢苹果"
两个句子语义完全相反但BoW向量完全相同会被模型判定为相似在情感分析、语义理解任务中完全失效。
2. 无法处理一词多义/多词一义
- 原理BoW把每个词当成独立符号不考虑词汇的语义关联
- 问题场景:
"Python"既可以指编程语言,也可以指蟒蛇;"开心""高兴"是同义词但BoW会把它们当成完全不同的词。
在语义检索、文本分类任务中,会丢失语义关联,导致模型效果差。
3. 维度灾难+稀疏性问题
- 原理:词表维度=语料库词汇总数大语料下维度极高且大部分向量元素为0稀疏
- 问题场景:
处理百万级文档的语料时,向量维度会达到几十万,计算成本极高,且模型容易过拟合,在机器学习任务中训练效率极低。
""")