diff --git a/ljh.py b/ljh.py new file mode 100644 index 0000000..cd40ced --- /dev/null +++ b/ljh.py @@ -0,0 +1,36 @@ +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, +# 增加计算开销,在大规模文本处理中效率低下。