当前位置: 首页 > news >正文

揭阳高端网站建设价格廊坊网站建设案例

揭阳高端网站建设价格,廊坊网站建设案例,网站建设中敬请期待 图片,交换链接名词解释在Wiki上看到的LSA的详细介绍#xff0c;感觉挺好的#xff0c;遂翻译过来#xff0c;有翻译不对之处还望指教。 原文地址#xff1a;http://en.wikipedia.org/wiki/Latent_semantic_analysis 前言 浅层语义分析#xff08;LSA#xff09;是一种自然语言处理中用到的方法… 在Wiki上看到的LSA的详细介绍感觉挺好的遂翻译过来有翻译不对之处还望指教。 原文地址http://en.wikipedia.org/wiki/Latent_semantic_analysis 前言 浅层语义分析LSA是一种自然语言处理中用到的方法其通过“矢量语义空间”来提取文档与词中的“概念”进而分析文档与词之间的关系。LSA的基本假设是如果两个词多次出现在同一文档中则这两个词在语义上具有相似性。LSA使用大量的文本上构建一个矩阵这个矩阵的一行代表一个词一列代表一个文档矩阵元素代表该词在该文档中出现的次数然后再此矩阵上使用奇异值分解SVD来保留列信息的情况下减少矩阵行数之后每两个词语的相似性则可以通过其行向量的cos值或者归一化之后使用向量点乘来进行标示此值越接近于1则说明两个词语越相似越接近于0则说明越不相似。 LSA最早在1988年由 Scott Deerwester, Susan Dumais, George Furnas, Richard Harshman, Thomas Landauer, Karen Lochbaum and Lynn Streeter提出在某些情况下LSA又被称作潜在语义索引LSI。 概述 词-文档矩阵Occurences Matrix) LSA 使用词-文档矩阵来描述一个词语是否在一篇文档中。词-文档矩阵式一个稀疏矩阵其行代表词语其列代表文档。一般情况下词-文档矩阵的元素是该词在文档中的出现次数也可以是是该词语的tf-idf(term frequency–inverse document frequency)。 词-文档矩阵和传统的语义模型相比并没有实质上的区别只是因为传统的语义模型并不是使用“矩阵”这种数学语言来进行描述。 降维 在构建好词-文档矩阵之后LSA将对该矩阵进行降维来找到词-文档矩阵的一个低阶近似。降维的原因有以下几点 原始的词-文档矩阵太大导致计算机无法处理从此角度来看降维后的新矩阵式原有矩阵的一个近似。原始的词-文档矩阵中有噪音从此角度来看降维后的新矩阵式原矩阵的一个去噪矩阵。原始的词-文档矩阵过于稀疏。原始的词-文档矩阵精确的反映了每个词是否“出现”于某篇文档的情况然而我们往往对某篇文档“相关”的所有词更感兴趣因此我们需要发掘一个词的各种同义词的情况。 降维的结果是不同的词或因为其语义的相关性导致合并如{(car), (truck), (flower)} -- {(1.3452 * car 0.2828 * truck), (flower)}将维可以解决一部分同义词的问题也能解决一部分二义性问题。具体来说原始词-文档矩阵经过降维处理后原有词向量对应的二义部分会加到和其语义相似的词上而剩余部分则减少对应的二义分量。推导假设X是词-文档矩阵其元素i,j代表词语i在文档j中的出现次数则X矩阵看上去是如下的样子可以看到每一行代表一个词的向量该向量描述了该词和所有文档的关系。 相似的一列代表一个文档向量该向量描述了该文档与所有词的关系。 词向量的点乘可以表示这两个单词在文档集合中的相似性。矩阵 包含所有词向量点乘的结果元素i,p和元素p,i具有相同的值代表词p和词i的相似度。类似的矩阵包含所有文档向量点乘的结果也就包含了所有文档那个的相似度。 现在假设存在矩阵的一个分解即矩阵可分解成正交矩阵U和V和对角矩阵的乘积。 这种分解叫做奇异值分解SVD即 因此词与文本的相关性矩阵可以表示为 因为与是对角矩阵因此肯定是由的特征向量组成的矩阵同理是特征向量组成的矩阵。这些特征向量对应的特征值即为中的元素。综上所述这个分解看起来是如下的样子被称作是奇异值而  和则叫做左奇异向量和右奇异向量。通过矩阵分解可以看出原始矩阵中的 只与U矩阵的第i行有关我们则称第i行为 。同理原始矩阵中的只与中的第j列有关我们称这一列为。与并非特征值但是其由矩阵所有的特征值所决定。当我们选择k个最大的奇异值和它们对应的与中的向量相乘则能得到一个X矩阵的k阶近似此时该矩阵和X矩阵相比有着最小误差即残差矩阵的Frobenius范数。但更有意义的是这么做可以将词向量和文档向量映射到语义空间。向量与含有k个奇异值的矩阵相乘实质是从高维空间到低维空间的一个变换可以理解为是一个高维空间到低维空间的近似。同理向量 也存在这样一个从高维空间到低维空间的变化。这种变换用公式总结出来就是这个样子有了这个变换则可以做以下事情判断文档  与  在低维空间的相似度。比较向量  与向量 (比如使用余弦夹角)即可得出。通过比较 与 可以判断词和词的相似度。 有了相似度则可以对文本和文档进行聚类。给定一个查询字符串算其在语义空间内和已有文档的相似性。要比较查询字符串与已有文档的相似性需要把文档和查询字符串都映射到语义空间对于原始文档由以下公式可以进行映射 其中对角矩阵 的逆矩阵可以通过求其中非零元素的倒数来简单的得到。 同理对于查询字符串得到其对应词的向量后根据公式 将其映射到语义空间再与文档进行比较。 应用 低维的语义空间可以用于以下几个方面: 在低维语义空间可对文档进行比较进而可用于文档聚类和文档分类。在翻译好的文档上进行训练可以发现不同语言的相似文档可用于跨语言检索。发现词与词之间的关系可用于同义词、歧义词检测。.通过查询映射到语义空间可进行信息检索。从语义的角度发现词语的相关性可用于“选择题回答模型”multi choice qustions answering model。 原文还说了一些其它方面感觉不是很重要不翻译了放上原文 Synonymy and polysemy are fundamental problems in natural language processing: Synonymy is the phenomenon where different words describe the same idea. Thus, a query in a search engine may fail to retrieve a relevant document that does not contain the words which appeared in the query. For example, a search for doctors may not return a document containing the word physicians, even though the words have the same meaning.Polysemy is the phenomenon where the same word has multiple meanings. So a search may retrieve irrelevant documents containing the desired words in the wrong meaning. For example, a botanist and a computer scientist looking for the word tree probably desire different sets of documents. Commercial applications[edit] LSA has been used to assist in performing prior art searches for patents.[5] Applications in human memory[edit] The use of Latent Semantic Analysis has been prevalent in the study of human memory, especially in areas of free recall and memory search. There is a positive correlation between the semantic similarity of two words (as measured by LSA) and the probability that the words would be recalled one after another in free recall tasks using study lists of random common nouns. They also noted that in these situations, the inter-response time between the similar words was much quicker than between dissimilar words. These findings are referred to as the Semantic Proximity Effect.[6] When participants made mistakes in recalling studied items, these mistakes tended to be items that were more semantically related to the desired item and found in a previously studied list. These prior-list intrusions, as they have come to be called, seem to compete with items on the current list for recall.[7] Another model, termed Word Association Spaces (WAS) is also used in memory studies by collecting free association data from a series of experiments and which includes measures of word relatedness for over 72,000 distinct word pairs.[8] 算法局限性 LSA的一些缺点如下: 新生成的矩阵的解释性比较差.比如 {(car), (truck), (flower)} ↦ {(1.3452 * car 0.2828 * truck), (flower)} (1.3452 * car 0.2828 * truck) 可以解释成 vehicle。同时也有如下的变换 {(car), (bottle), (flower)} ↦ {(1.3452 * car 0.2828 * bottle), (flower)} 造成这种难以解释的结果是因为SVD只是一种数学变换并无法对应成现实中的概念。LSA无法扑捉一词多以的现象。在原始词-向量矩阵中每个文档的每个词只能有一个含义。比如同一篇文章中的“The Chair of Board和the chair maker的chair会被认为一样。在语义空间中含有一词多意现象的词其向量会呈现多个语义的平均。相应的如果有其中一个含义出现的特别频繁则语义向量会向其倾斜。LSA具有词袋模型的缺点即在一篇文章或者一个句子中忽略词语的先后顺序。LSA的概率模型假设文档和词的分布是服从联合正态分布的但从观测数据来看是服从泊松分布的。因此LSA算法的一个改进PLSA使用了多项分布其效果要好于LSA。 教你在Python中实现潜在语义分析 介绍你有没有去过那种运营良好的图书馆我总是对图书馆馆员通过书名、内容或其他主题保持一切井井有条的方式印象深刻。但是如果你给他们数千本书要求他们根据书的种类整理出来他们很难在一天内完成这项任务更不用说一小时但是如果这些书以电子的形式出现就难不倒你了对吧所有的整理会在几秒之间完成并且不需要任何人工劳动。自然语言处理NLP万岁看看下面这段话你可以从高亮的词语中总结出这段话有三个主题或概念——主题1、主题2和主题3。一个良好的主题模型可以识别出相似的词语并将它们放在一组或一个主题下。上述示例中最主要的主题是主题2表明这段文字主要关于虚假视频。是不是很好奇太好了在本文中我们将学习一种叫做主题建模的文本挖掘方法。这是一种非常有用的提取主题的技术在面对NLP挑战时你会经常使用到它。注意我强烈建议您通读这篇文章了解SVD和UMAP等定义。它们在本文中经常出现因此对它们有基本的理解有助于巩固这些概念。目录1. 什么是主题模型2. 何时使用主题建模3. 潜在语义分析LSA概述4. 在Python中实现LSA数据读取和检查数据预处理文档-词项矩阵Document-Term Matrix主题建模主题可视化5.  LSA的优缺点6.  其他主题建模技术什么是主题模型主题模型可定义为一种在大量文档中发现其主题的无监督技术。这些主题本质上十分抽象即彼此相关联的词语构成一个主题。同样在单个文档中可以有多个主题。我们暂时将主题模型理解为一个如下图所示的黑盒子这个黑盒子主题模型将相似和相关的词语聚集成簇称为主题。这些主题在文档中具有特定的分布每个主题都根据它包含的不同单词的比例来定义。何时使用主题建模回想一下刚才提到的将相似的书籍整理到一起的例子。现在假设你要对一些电子文档执行类似的任务。只要文档的数量不太多你就可以手动完成。但是如果这些文档的数量非常多呢这就是NLP技术脱颖而出的地方。对于这个任务而言主题建模非常适用。主题建模有助于挖掘海量文本数据查找词簇文本之间的相似度以及发现抽象主题。如果这些理由还不够引人注目主题建模也可用于搜索引擎判断搜索字段与结果的匹配程度。越来越有趣了是不是那么请继续阅读潜在语义分析LSA概述所有语言都有自己的错综复杂和细微差别比如一义多词和一词多义这对机器而言很难捕捉有时它们甚至也被人类误解了。例如如下两个句子1. I liked his last novel quite a lot.2. We would like to go for a novel marketing campaign.在第一个句子中novel 指一本书而在第二个句子中它的含义是新奇的、新颖的。我们能够轻松地区分这些单词是因为我们可以理解这些词背后的语境。但是机器并不能捕捉到这个概念因为它不能理解单词的上下文。这就是潜在语义分析LSA发挥作用的地方它可以利用单词所在的上下文来捕捉隐藏的概念即主题。因此简单地将单词映射到文档并没有什么用。我们真正需要的是弄清楚单词背后的隐藏概念或主题。LSA是一种可以发现这些隐藏主题的技术。现在我们来深入探讨下LSA的内部工作机制。LSA的实施步骤假设我们有m篇文档其中包含n个唯一词项单词。我们希望从所有文档的文本数据中提取出k个主题。主题数k必须由用户给定。生成一个m×n维的文档-词项矩阵Document-Term Matrix矩阵元素为TF-IDF分数然后我们使用奇异值分解SVD把上述矩阵的维度降到k预期的主题数维SVD将一个矩阵分解为三个矩阵。假设我们利用SVD分解矩阵A我们会得到矩阵U矩阵S和矩阵VT矩阵V的转置矩阵Ukdocument-term matrix的每个行向量代表相应的文档。这些向量的长度是k是预期的主题数。代表数据中词项的向量可以在矩阵Vkterm-topic matrix中找到。因此SVD为数据中的每篇文档和每个词项都提供了向量。每个向量的长度均为k。我们可以使用余弦相似度的方法通过这些向量找到相似的单词和文档。在Python中实现LSA是时候启动Python并了解如何在主题建模问题中应用LSA了。开启Python环境后请按照如下步骤操作。数据读取和检查在开始之前先加载需要的库。import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snspd.set_option(display.max_colwidth, 200)在本文中我们使用sklearn中的20 Newsgroup数据集可从这里下载然后按照代码继续操作。from sklearn.datasets import fetch_20newsgroupsdataset fetch_20newsgroups(shuffleTrue, random_state1, remove(header,footers,quotes))documents dataset.datalen(documents)Output: 11,314Dataset.target_names [alt.atheism,comp.graphics,comp.os.ms-windows.misc,comp.sys.ibm.pc.hardware,comp.sys.mac.hardware,misc.forsale,rec.autos,rec.motorcycles,rec.sport.baseball,rec.sport.hockey,sci.crypt,sci.electronics,sci.med,sci.space,soc.religion.christian,talk.politics.guns,talk.politics.mideast,talk.politics.misc,talk.religion.misc]该数据集包含分布在20个不同新闻组中的11314篇文档。数据预处理 首先我们尝试尽可能地清理文本数据。我们的想法是使用正则表达式replace([^a-zA-Z#], )一次性删除所有标点符号、数字和特殊字符这个正则表达式可以替换除带空格的字母之外的所有内容。然后删除较短的单词因为它们通常并不包含有用的信息。最后将全部文本变为小写使得大小写敏感失效。news_df pd.DataFrame({document:documents}) # removing everything except alphabetsnews_df[clean_doc] news_df[document].str.replace([^a-zA-Z#], ) # removing short wordsnews_df[clean_doc] news_df[clean_doc].apply(lambda x: .join([w for w in x.split() if len(w)3])) # make all the lowercasenews_df[clean_doc] news_df[clean_doc].apply(lambda x: x.lower())最好将文本数据中的停止词删除因为它们十分混乱几乎不携带任何信息。停止词是指it, they, am, been, about, because, while之类的词汇。 要从文档中删除停止词我们必须对文本进行标记将文本中的字符串拆分为单个的标记或单词。删除完停止词后我们将标记重新拼接到一起。from nltk.corpus import stopwordsstop_words stopwords.words(english) # tokenizationtokenized_doc news_df[clean_doc].apply(lambda x: x.split()) # remove stop-wordstokenized_doc tokenized_doc.apply(lambda x: [item for item in x ifitem not in stop_words]) # de-tokenizationdetokenized_doc []for i in range(len(news_df)): t .join(tokenized_doc[i])    detokenized_doc.append(t) news_df[clean_doc] detokenized_doc文档-词项矩阵Document-Term Matrix 这是主体建模的第一步。我们将使用sklearn的TfidfVectorizer来创建一个包含1000个词项的文档-词项矩阵。from sklearn.feature_extraction.text import TfidfVectorizer vectorizer TfidfVectorizer(stop_wordsenglish,max_features 1000, # keep top 1000 termsmax_df 0.5,smooth_idf True) X  vectorizer.fit_transform(news_df[clean_doc]) X.shape  # check shape of the document-term matrix(11314, 1000)我们也可以使用全部词项来创建这个矩阵但这回需要相当长的计算时间并占用很多资源。因此我们将特征的数量限制为1000。如果你有计算能力建议尝试使用所有词项。主题建模下一步是将每个词项和文本表示为向量。我们将使用文本-词项矩阵并将其分解为多个矩阵。我们将使用sklearn的TruncatedSVD来执行矩阵分解任务。由于数据来自20个不同的新闻组所以我们打算从文本数据中提取出20个主题。可以使用n_components参数来制定主题数量。from sklearn.decomposition import TruncatedSVD # SVD represent documents and terms in vectorssvd_model TruncatedSVD(n_components20, algorithmrandomized, n_iter100, random_state122) svd_model.fit(X) len(svd_model.components_) 20svd_model的组成部分即是我们的主题我们可以通过svd_model.components_来访问它们。最后我们打印出20个主题中前几个最重要的单词看看我们的模型都做了什么。terms vectorizer.get_feature_names() for i, comp in enumerate(svd_model.components_):terms_comp zip(terms, comp)sorted_terms sorted(terms_comp, keylambda x:x[1], reverseTrue)[:7]print(Topic str(i): )for t in sorted_terms:print(t[0])print( )Topic 0: like know people think good time thanksTopic 0: like know people think good time thanksTopic 1: thanks windows card drive mail file advanceTopic 2: game team year games season players goodTopic 3: drive scsi disk hard card drives problemTopic 4: windows file window files program using problemTopic 5: government chip mail space information encryption dataTopic 6: like bike know chip sounds looks lookTopic 7: card sale video offer monitor price jesusTopic 8: know card chip video government people clipperTopic 9: good know time bike jesus problem workTopic 10: think chip good thanks clipper need encryptionTopic 11: thanks right problem good bike time windowTopic 12: good people windows know file sale filesTopic 13: space think know nasa problem year israelTopic 14: space good card people time nasa thanksTopic 15: people problem window time game want bikeTopic 16: time bike right windows file need reallyTopic 17: time problem file think israel long mailTopic 18: file need card files problem right goodTopic 19: problem file thanks used space chip sale主题可视化为了找出主题之间的不同我们将其可视化。当然我们无法可视化维度大于3的数据但有一些诸如PCA和t-SNE等技术可以帮助我们将高维数据可视化为较低维度。在这里我们将使用一种名为UMAPUniform Manifold Approximation and Projection的相对较新的技术。import umap X_topics svd_model.fit_transform(X)embedding umap.UMAP(n_neighbors150, min_dist0.5, random_state12).fit_transform(X_topics)plt.figure(figsize(7,5))plt.scatter(embedding[:, 0], embedding[:, 1],c  dataset.target,s  10, # sizeedgecolornone)plt.show()如上所示结果非常漂亮。每个点代表一个文档颜色代表20个新闻组。我们的LSA模型做得很好。可以任意改变UMAP的参数来观察其对图像的影响。可在此找到本文的完整代码。LSA的优缺点 如上所述潜在语义分析非常有用但是确实有其局限性。因此对LSA的优缺点都有充分的认识十分重要这样你就知道何时需要使用LSA以及何时需要尝试其他方法。 优点LSA快速且易于实施。它的结果相当好比简单的向量模型强很多。 缺点因为它是线性模型因此在具有非线性依赖性的数据集上可能效果不佳。LSA假设文本中的词项服从正态分布这可能不适用于所有问题。LSA涉及到了SVD它是计算密集型的当新数据出现时难以更新。 其他主题建模技术 除了LSA还有其他一些先进并有效的主题建模技术如LDALatent Dirichlet Allocation和Ida2Vec。我们有一篇关于LDA的精彩文章你可以在这里查看。Ida2vec是一个基于word2vec单词嵌入的更先进的主题建模技术。如果你想对它有更多了解可以在下方的评论中留言我们很乐意回答你的问题。 尾记本文意于与大家分享我的学习经验。主题建模是个非常有趣的话题当你在处理文本数据集时会用到许多技巧和方法。因此我敦促大家使用本文中的代码并将其应用于不同的数据集。如果您对本文有任何疑问或反馈请与我们联系。快乐地去挖掘文本吧原文标题Text Mining 101: A Stepwise Introduction to Topic Modeling using Latent Semantic Analysis (using Python)原文链接https://www.analyticsvidhya.com/blog/2018/10/stepwise-guide-topic-modeling-latent-semantic-analysis/
http://www.zqtcl.cn/news/474741/

相关文章:

  • 网站开发模版宁波网
  • 以鹦鹉做头像的网站wordpress post是什么
  • 公司怎么建立自己网站做网站需要编码吗
  • 网站域名根目录在哪里wordpress做跟随导航导航
  • 昆明网站建站推广it外包工作怎么样
  • 上海长宁网站建设公司WordPress 采集文章 图片
  • 紫色 网站网络设计的最后一个步骤是
  • 广东省建设安全卡查询网站网站开发需要的语言
  • 网站的建设需要考虑什么问题投放广告的网站
  • 雅虎提交网站入口常州哪家做网站好
  • 哪些网站是503错误代码太原搭建网站的公司
  • 网站建设公司需要有什么东西凡科建站seo
  • 荷泽网站建设买链接做网站 利润高吗
  • 网站嵌套代码网络营销与策划实训
  • 网上做环评立项的网站是哪个网站开发是前端吗
  • 公司网站可以自己建立吗前端网站开发教程
  • 淘宝客导购网站营销推广软件有哪些
  • 专做写字楼出租的网站建设银行北京招聘网站
  • 龙华观澜网站建设酒店网站建设策划
  • 淄博网站排名做版权保护的网站
  • 专业轻电商网站建设公司新闻发布的网站
  • 设计型网站营销存在的问题及改进
  • 南通建设企业网站wordpress 位置地图
  • 无锡本地网站有哪些手机拍摄720全景软件
  • 泉州晋江网站建设费用东莞市住房和城乡建设局门户网站
  • 苏州网站建设哪家便宜平谷手机网站设计
  • 建设项目一次公示网站嘉兴新站seo外包
  • 电子商务网站模板 html专业网站建设服务报价
  • 网页设计和网站建设的区别研发一款app要多少钱
  • seo网站建设方案建个企业网站需要多少钱