在熟练掌握 ai 对话的技术后,储备了一些技术方面的知识
1. 余弦相似度
余弦相似度是一种衡量文本相似度的方法,它用两个文本向量的夹角的余弦值来表示两个文本的相似程度¹²。余弦值越接近1,表示两个文本越相似;余弦值越接近0,表示两个文本越不相似²³。要求文档间的余弦相似度,需要先将文档转化为向量,然后计算向量间的余弦值³⁴。
源: 与必应的对话, 2023/3/14(1) 文本相似度的衡量之余弦相似度 - DreamBoy_张亚飞 - 博客园. https://www.cnblogs.com/zhangyafei/p/10617237.html 访问时间 2023/3/14.
(2) 使用余弦相似度算法计算文本相似度 - 知乎. https://zhuanlan.zhihu.com/p/43396514 访问时间 2023/3/14.
(3) 使用余弦相似度计算文本相似度勇敢牛牛的博客-CSDN .... https://blog.csdn.net/wxgxgp/article/details/104146034 访问时间 2023/3/14.
(4) 余弦相似度 | 文本分析:基础 - 知乎. https://zhuanlan.zhihu.com/p/41420179 访问时间 2023/3/14.
2. 文档向量化
将文档转化为向量的方法有很多种,以下是其中几种常见的方法¹²:
- One-hot编码:将每个单词表示为一个向量,向量的维度为词汇表的大小,每个单词对应向量中的一个元素,该元素的值为1,其余元素的值为0。
- TF-IDF:将每个单词表示为一个权重,权重反映了单词在文档中的重要程度,计算方式是单词在文档中的频率乘以单词在文档集合中的逆文档频率。
- SVD:将文档-单词矩阵分解为三个矩阵的乘积,取前k个奇异值保留主要成分,得到文档的k维主题向量。
- LDA:将文档看作是由多个主题混合而成的,每个主题又是由多个单词组成的,通过概率模型推断出每个文档的主题分布和每个主题的单词分布,得到文档的主题向量。
源: 与必应的对话, 2023/3/14(1) 将文本转换成向量的方法有哪些? - 知乎. https://www.zhihu.com/question/56121488 访问时间 2023/3/14.
(2) 文本转化为向量的方法_百度文库. https://wenku.baidu.com/view/9c89ef785bfb770bf78a6529647d27284a733772.html 访问时间 2023/3/14.
(3) 矢量转换器 (在线自由) — Convertio. https://convertio.co/zh/vector-converter/ 访问时间 2023/3/14.
(4) 把自然语言文本转换为向量 | NLP基础 - 腾讯云开发者 .... https://cloud.tencent.com/developer/article/1559981 访问时间 2023/3/14.
3. 基于 TF-IDF 的余弦相似度计算
上述方法中,TF-IDF是最常用于余弦相似度的计算的¹²。TF-IDF可以反映单词在文档中的重要程度,而不是仅仅考虑单词的频率。这样可以减少一些常见词或停用词对文档相似度的影响²³。TF-IDF也可以与SVD或LDA结合,得到更低维度的文档向量,提高计算效率和准确度²。
源: 与必应的对话, 2023/3/14(1) 距离相似度计算总结(欧式距离、余弦相似度、杰卡 .... https://zhuanlan.zhihu.com/p/354289511 访问时间 2023/3/14.
(2) 利用tf-idf计算文本相似度丁叔叔的博客-CSDN博客. https://blog.csdn.net/weixin_43758551/article/details/113918690 访问时间 2023/3/14.
(3) 相似度计算方法(三) 余弦相似度潘永青的博客-CSDN博客. https://blog.csdn.net/u014539465/article/details/105353638 访问时间 2023/3/14.
3.1 SVD 或 LDA 与 TF-IDF 结合
SVD或LDA是两种降维的方法,可以将文档-单词矩阵分解为更低维度的文档-主题矩阵和主题-单词矩阵¹³。TF-IDF是一种权重计算的方法,可以将文档-单词矩阵中的每个元素表示为一个权重,反映单词在文档中的重要程度²³。SVD或LDA可以与TF-IDF结合,即先用TF-IDF计算文档-单词矩阵,再用SVD或LDA对该矩阵进行降维,得到更稀疏、更有意义的文档向量²³。
源: 与必应的对话, 2023/3/14(1) LDA主题模型构建的两种方式(TF-IDF 和 Corpus) - 知乎. https://zhuanlan.zhihu.com/p/446757039 访问时间 2023/3/14.
(2) 深度/机器学习基础知识要点:TFIDF、LDA、LSA_lda和词频 .... https://blog.csdn.net/zengNLP/article/details/104141296 访问时间 2023/3/14.
(3) python - Calculate SVD on a TF-IDF matrix - Stack Overflow. https://stackoverflow.com/questions/41320433/calculate-svd-on-a-tf-idf-matrix 访问时间 2023/3/14.
3.2 文档标题的权重计算
文档向量计算中,文档标题与文档正文所占的比重没有一个固定的标准,可能根据不同的应用场景和需求而有所调整¹²。一种可能的方法是,给文档标题和文档正文分别赋予不同的权重,然后将它们的词项权重相加,得到文档向量¹²。例如,如果认为文档标题比文档正文更能反映文档的主题,那么可以给文档标题更高的权重,如0.8,而给文档正文较低的权重,如0.2²。
源: 与必应的对话, 2023/3/14(1) 第六章 文档评分、词项权重计算及向量空间模型_ww188 .... https://blog.csdn.net/ww188/article/details/76551239 访问时间 2023/3/14.
(2) 《信息检索导论》第六章 文档评分、词项权重计算及 .... https://zhuanlan.zhihu.com/p/569055128 访问时间 2023/3/14.
(3) 词向量表示和句向量、文章向量计算方法_tfidf训练句 .... https://blog.csdn.net/zyr2010/article/details/106644886 访问时间 2023/3/14.
4. 关键词(组)提取技术
TextRank
TextRank是一种基于图的用于关键词抽取和文档摘要的排序算法¹,它利用文本内部的词语间的共现信息来计算词语或句子的重要性²。TextRank是由谷歌的网页重要性排序算法PageRank改进而来¹,它可以从一个给定的文本中抽取出关键词、关键词组和关键句²。
源: 与必应的对话, 2023/3/14(1) TextRank算法介绍及实现_Asia-Lee的博客-CSDN博客. https://blog.csdn.net/asialee_bird/article/details/96894533 访问时间 2023/3/14.
(2) 独家 | 基于TextRank算法的文本摘要 - 知乎. https://zhuanlan.zhihu.com/p/55270310 访问时间 2023/3/14.
(3) 独家 | 基于TextRank算法的文本摘要(附Python代码 .... https://cloud.tencent.com/developer/article/1380013 访问时间 2023/3/14.
(4) 关键词提取和摘要算法TextRank详解与实战 - 知乎. https://zhuanlan.zhihu.com/p/126733456 访问时间 2023/3/14.
LexRank
LexRank是一种基于图的词汇中心性的文本摘要算法¹,它利用句子之间的相似度来构建一个无向图,然后用基于图的排序方法来计算句子的重要性²。LexRank的主要思想是,句子之间的相似度可以反映出句子对读者的“推荐”程度,因此,如果一个句子与很多其他句子很相似,那么它可能是一个很重要的句子²。LexRank有两种变体,一种是基于阈值的LexRank,另一种是连续的LexRank¹。
源: 与必应的对话, 2023/3/14(1) Title: LexRank: Graph-based Lexical Centrality as Salience in Text .... https://arxiv.org/abs/1109.2128 访问时间 2023/3/14.
(2) lexrank · PyPI. https://pypi.org/project/lexrank/ 访问时间 2023/3/14.
(3) LexRank: Graph-based Lexical Centrality as Salience in Text Summarization. https://arxiv.org/pdf/1109.2128.pdf 访问时间 2023/3/14.
使用 TF-IDF 来得到文档的关键词、关键词组
TF-IDF是一种用于评估词语在文档中的重要性的统计方法,它考虑了词频(TF)和逆文档频率(IDF)两个因素¹。词频是指词语在文档中出现的次数,逆文档频率是指包含该词语的文档数与总文档数的比值的倒数的对数²。TF-IDF的值越高,表示词语在文档中越重要²。
使用TF-IDF来得到文档的关键词、关键词组的步骤如下³:
- 对文档进行分词和去除停用词,得到词语列表
- 计算每个词语在文档中的TF值和在文档集合中的IDF值,得到每个词语的TF-IDF值
- 按照TF-IDF值从高到低排序,选取前N个作为关键词
- 对于关键词组,可以使用n-gram模型或者TextRank算法来提取
源: 与必应的对话, 2023/3/14(1) 【NLP】文本关键词提取的两种方法-TFIDF和TextRank - 知乎. https://zhuanlan.zhihu.com/p/417022694 访问时间 2023/3/14.
(2) 使用python的jieba库中的TF-IDF算法进行关键词提取 - 知乎. https://zhuanlan.zhihu.com/p/95358646 访问时间 2023/3/14.
(3) 文本分词后进行关键词提取之TF-IDF算法_分词后提取 .... https://blog.csdn.net/sk_berry/article/details/105458376 访问时间 2023/3/14.
N-gram 模型
n-gram模型是一种基于统计的语言模型,它假设一个词只与前面n-1个词相关,而与其他词无关,这种假设称为n-1阶马尔可夫假设¹。n-gram模型的目的是计算一个句子或者一个词序列的概率,即这些词的联合概率²。n-gram模型有多种应用,例如预测下一个词,评估句子的合理性,评估字符串的相似度等³⁴⁵。n-gram模型的一般步骤如下³:
- 对语料库进行分词和预处理,得到词语列表
- 对每个词语进行编号,构建词典
- 用滑动窗口的方法,把词语列表切分成长度为n的片段,称为gram
- 统计每个gram在语料库中出现的次数,得到频数表
- 根据频数表,计算每个gram的条件概率,得到概率表
- 根据概率表,计算任意句子或者词序列的概率
源: 与必应的对话, 2023/3/14(1) NLP:n-gram模型Dawn_www的博客-CSDN博客. https://blog.csdn.net/sinat_36226553/article/details/108731334 访问时间 2023/3/14.
(2) 自然语言处理NLP中的N-gram模型蕉叉熵的博客-CSDN博客. https://blog.csdn.net/songbinxu/article/details/80209197 访问时间 2023/3/14.
(3) NLP - ngram - N元语言模型 python 实现_草青工作室的技术 .... https://blog.51cto.com/xxjjing/5804823 访问时间 2023/3/14.
(4) 自然语言处理中N-Gram模型介绍 - 知乎. https://zhuanlan.zhihu.com/p/32829048 访问时间 2023/3/14.
(5) 了解N-Gram模型 - 知乎. https://zhuanlan.zhihu.com/p/34219483 访问时间 2023/3/14.