導航:首頁 > 源碼編譯 > 文本語義分析演算法

文本語義分析演算法

發布時間:2022-12-25 09:14:48

⑴ 什麼是文本分析

  文本分析是將非結構化文本數據轉換為有意義的數據進行分析的過程,以度量客戶意見、產品評論、反饋,提供搜索工具、情感分析和實體建模,以支持基於事實的決策制定。文本分析使用了許多語言、統計和機器學習技術。文本分析包括從非結構化數據中檢索信息,以及對輸入文本進行結構化以得出模式和趨勢,並對輸出數據進行評估和解釋的過程。它還包括詞彙分析、分類、聚類、模式識別、標簽、注釋、信息提取、鏈接和關聯分析、可視化和預測分析
  分析從數以百萬計的不同的文件和格式的文本數據中,決定出關鍵字、主題、類別、語義、標簽。文本分析這個術語大致等同於文本挖掘。
  文本分析軟體解決方案提供工具、伺服器、基於分析演算法的應用程序、數據挖掘和提取工具,用於將非結構化數據轉換為有意義的數據進行分析。輸出(提取的實體、事實、關系)通常存儲在關系、XML和其他數據倉庫應用程序中,以便由其他工具(如商業智能工具或大數據分析或預測分析工具)進行分析。

  大數據分析、數據挖掘和文本分析以及統計數據為業務用戶提供了通過發現結構化和非結構化數據中的模式和關系來創建智能預測的功能。

⑵ 基於語義的文本聚類有哪些方法

聚類分析是一種無監督的機器學習方法,能有效地組織文本信息,應用非常廣泛,而大部分文本聚類演算法都採用向量空間模型表示文本對象

⑶ 經典大規模文本相似識別架構和演算法總結

在數據分析和挖掘領域,我們經常需要知道個體間差異大小,從而計算個體相似性。如今互聯網內容爆發時代,針對海量文本的相似識別擁有極大需求。本文將通過識別兩段文本是否相似,來看看常見的相似演算法,及線上落地方案。

一般情況下,我們會將數據進行向量化,將問題抽象為數學問題。比如兩個樣本X、Y,X=(x1, x2, x3, … xn),Y=(y1, y2, y3, … yn)表示N維向量空間的兩個樣本,分析差異主要有距離度量和相似度度量。

文本向量化有很多方法,切詞、ngram是最常用方法。一般的,分詞加預處理能更好的表達語義,我們通過預處理,過濾掉無效字元及停用詞。

對"組裝衣櫃,剛買不久" 和 "組裝鞋櫃,全新"向量化

距離(Distance)用於衡量樣本在空間上的距離,距離越大,差異越大。

歐氏距離是最容易直觀理解的距離度量方法,我們認知中兩個點在空間中的距離就是歐氏距離。擴展到高維空間中,歐式距離的計算公式如圖1:

圖1 歐氏距離歐式距離因為計算是基於各維度特徵的絕對數值,所以歐氏度量需要保證各維度指標在相同的刻度級別,當不同維度單位不同將使距離失去意義。

餘弦相似度用向量空間中兩個向量夾角餘弦值作為衡量兩個個體間差異的大小。餘弦相似度更加註重兩個向量在方向上的差異,而非距離或長度。公式如圖2:

圖2 餘弦相似度

通過三維坐標系可以很直觀的看到兩者的區別,如圖3所示:

圖3 歐式距離和餘弦相似度區別

歐氏距離和餘弦相似度各自的計算方式和衡量特徵,分別適用於不同的數據分析模型:歐式距離適應於需要從維度大小中體現差異的場景,餘弦相似度更多的是方向上的差異。如果我們分詞後,將每個詞賦予一定的權重,那麼可以使用歐氏距離。更多情況下,我們採用餘弦相似度來計算兩文本之間相似度。

上面的相似演算法,適用於小量樣本,兩兩計算。那麼在大規模樣本下,給定新的樣本怎麼找到相似的樣本呢?
下面我們將引入 SimHash 演算法。

SimHash是Google在2007年發表的一種指紋生成演算法或者叫指紋提取演算法(如圖4),其主要思想是降維。

圖4 SimHash演算法

演算法主要原理分為這幾步:

大家可能存在疑問:生成一串二進制需要這么麻煩嗎?直接用hash函數生成0和1的不是更簡單。比如:md5和hashcode等。

可以看得出來,相似兩個文本,simhash局部變化而普通的hashcode卻天壤之別。文本轉換為SimHash後,我們通過海明距離(Hamming distance)計算兩個SimHash是否相似。

Google的論文給出的數據中,64位的簽名,在漢明距離為3的情況下, 可認為兩篇文檔是相似。

為了查詢相似,我們依然需要兩兩比較。但漢明距離演算法給了我們降維的捷徑。

可以證明,漢明距離小於3情況下,將hash code等分為4份,則必有一份完全相同。

基於上述特點,我們設計一個MySQL存儲索引方案來實現,如圖5所示。

圖5 MySQL存儲索引方案

⑷ NLP第十篇-語義分析

對於不同的語言單位,語義分析的任務各不相同。在詞的層次上,語義分析的基本任務是進行 詞義消歧(WSD) ,在句子層面上是 語義角色標注(SRL) ,在篇章層面上是 指代消歧 ,也稱共指消解。

詞義消歧

由於詞是能夠獨立運用的最小語言單位,句子中的每個詞的含義及其在特定語境下的相互作用構成了整個句子的含義,因此,詞義消歧是句子和篇章語義理解的基礎,詞義消歧有時也稱為詞義標注,其任務就是確定一個多義詞在給定上下文語境中的具體含義。

詞義消歧的方法也分為有監督的消歧方法和無監督的消歧方法,在有監督的消歧方法中,訓練數據是已知的,即每個詞的詞義是被標注了的;而在無監督的消歧方法中,訓練數據是未經標注的。

多義詞的詞義識別問題實際上就是該詞的上下文分類問題,還記得詞性一致性識別的過程嗎,同樣也是根據詞的上下文來判斷詞的詞性。

有監督詞義消歧根據上下文和標注結果完成分類任務。而無監督詞義消歧通常被稱為聚類任務,使用聚類演算法對同一個多義詞的所有上下文進行等價類劃分,在詞義識別的時候,將該詞的上下文與各個詞義對應上下文的等價類進行比較,通過上下文對應的等價類來確定詞的詞義。此外,除了有監督和無監督的詞義消歧,還有一種基於詞典的消歧方法。

在詞義消歧方法研究中,我們需要大量測試數據,為了避免手工標注的困難,我們通過人工製造數據的方法來獲得大規模訓練數據和測試數據。其基本思路是將兩個自然詞彙合並,創建一個偽詞來替代所有出現在語料中的原詞彙。帶有偽詞的文本作為歧義原文本,最初的文本作為消歧後的文本。

有監督的詞義消歧方法

有監督的詞義消歧方法通過建立分類器,用劃分多義詞上下文類別的方法來區分多義詞的詞義。

基於互信息的消歧方法

基於互信息的消歧方法基本思路是,對每個需要消歧的多義詞尋找一個上下文特徵,這個特徵能夠可靠地指示該多義詞在特定上下文語境中使用的是哪種語義。

互信息是兩個隨機變數X和Y之間的相關性,X與Y關聯越大,越相關,則互信息越大。

這里簡單介紹用在機器翻譯中的Flip-Flop演算法,這種演算法適用於這樣的條件,A語言中有一個詞,它本身有兩種意思,到B語言之後,有兩種以上的翻譯。

我們需要得到的,是B語言中的哪些翻譯對應義項1,哪些對應義項2。

這個問題復雜的地方在於,對於普通的詞義消歧,比如有兩個義項的多義詞,詞都是同一個,上下文有很多,我們把這些上下文劃分為兩個等價類;而這種跨語言的,不僅要解決上下文的劃分,在這之前還要解決兩個義項多種詞翻譯的劃分。

這裡面最麻煩的就是要先找到兩種義項分別對應的詞翻譯,和這兩種義項分別對應的詞翻譯所對應的上下文特徵,以及他們之間的對應關系。

想像一下,地上有兩個圈,代表兩個義項;這兩個圈裡,分別有若干個球,代表了每個義項對應的詞翻譯;然後這兩個圈裡還有若干個方塊,代表了每個義項在該語言中對應的上下文。然後球和方塊之間有線連著(球與球,方塊與方塊之間沒有),隨便連接,球可以連多個方塊,方塊也可以連多個球。然後,圈沒了,兩個圈裡的球和方塊都混在了一起,亂七八糟的,你該怎麼把屬於這兩個圈的球和方塊分開。

Flip-Flop演算法給出的方法是,試試。把方塊分成兩個集合,球也分成兩個集合,然後看看情況怎麼樣,如果情況不好就繼續試,找到最好的劃分。然後需要解決的問題就是,怎麼判定分的好不好?用互信息。

如果兩個上下文集(方塊集)和兩個詞翻譯集(球集)之間的互信息大,那我們就認為他們的之間相關關系大,也就與原來兩個義項完美劃分更接近。

實際上,基於互信息的這種方法直接把詞翻譯的義項劃分也做好了。

基於貝葉斯分類器的消歧方法

基於貝葉斯分類器的消歧方法的思想與《淺談機器學習基礎》中講的樸素貝葉斯分類演算法相同,當時是用來判定垃圾郵件和正常郵件,這里則是用來判定不同義項(義項數可以大於2),我們只需要計算給定上下文語境下,概率最大的詞義就好了。

根據貝葉斯公式,兩種情況下,分母都可以忽略,所要計算的就是分子,找最大的分子,在垃圾郵件識別中,分子是P(當前郵件所出現的詞語|垃圾郵件)P(垃圾郵件),那麼乘起來就是垃圾郵件和當前郵件詞語出現的聯合分布概率,正常郵件同理;而在這里分子是P(當前詞語所存在的上下文|某一義項)P(某一義項),這樣計算出來的就是某一義項和上下文的聯合分布概率,再除以分母P(當前詞語所存在的上下文),計算出來的結果就是P(某一義項|當前詞語所存在的上下文),就能根據上下文去求得概率最大的義項了。

基於最大熵的詞義消歧方法

利用最大熵模型進行詞義消歧的基本思想也是把詞義消歧看做一個分類問題,即對於某個多義詞根據其特定的上下文條件(用特徵表示)確定該詞的義項。

基於詞典的詞義消歧方法

基於詞典語義定義的消歧方法

M. Lesk 認為詞典中的詞條本身的定義就可以作為判斷其詞義的一個很好的條件,就比如英文中的core,在詞典中有兩個定義,一個是『松樹的球果』,另一個是指『用於盛放其它東西的錐形物,比如盛放冰激凌的錐形薄餅』。如果在文本中,出現了『樹』、或者出現了『冰』,那麼這個core的詞義就可以確定了。

我們可以計算詞典中不同義項的定義和詞語在文本中上下文的相似度,就可以選擇最相關的詞義了。

基於義類詞典的消歧方法

和前面基於詞典語義的消歧方法相似,只是採用的不是詞典里義項的定義文本,而是採用的整個義項所屬的義類,比如ANMINAL、MACHINERY等,不同的上下文語義類有不同的共現詞,依靠這個來對多義詞的義項進行消歧。

無監督的詞義消歧方法

嚴格地講,利用完全無監督的消歧方法進行詞義標注是不可能的,因為詞義標注畢竟需要提供一些關於語義特徵的描述信息,但是,詞義辨識可以利用完全無監督的機器學習方法實現。

其關鍵思想在於上下文聚類,計算多義詞所出現的語境向量的相似性就可以實現上下文聚類,從而實現詞義區分。

語義角色標注概述

語義角色標注是一種淺層語義分析技術,它以句子為單位,不對句子所包含的予以信息進行深入分析,而只是分析句子的謂詞-論元結構。具體一點講,語義角色標注的任務就是以句子的謂詞為中心,研究句子中各成分與謂詞之間的關系,並且用語義角色來描述它們之間的關系。比如:

實際上就是填槽吧,找到句子中的時間、地點、施事者、受事者和核心謂詞。

目前語義角色標注方法過於依賴句法分析的結果,而且領域適應性也太差。

自動語義角色標注是在句法分析的基礎上進行的,而句法分析包括短語結構分析、淺層句法分析和依存關系分析,因此,語義角色標注方法也分為 基於短語結構樹 的語義角色標注方法、 基於淺層句法分析結果 的語義角色標注方法和 基於依存句法分析結果 的語義角色標注方法三種。

它們的基本流程類似,在研究中一般都假定謂詞是給定的,所要做的就是找出給定謂詞的各個論元,也就是說任務是確定的,找出這個任務所需的各個槽位的值。其流程一般都由4個階段組成:

候選論元剪除的目的就是要從大量的候選項中剪除掉那些不可能成為論元的項,從而減少候選項的數目。

論元辨識階段的任務是從剪除後的候選項中識別出哪些是真正的論元。論元識別通常被作為一個二值分類問題來解決,即判斷一個候選項是否是真正的論元。該階段不需要對論元的語義角色進行標注。

論元標注階段要為前一階段識別出來的論元標注語義角色。論元標注通常被作為一個多值分類問題來解決,其類別集合就是所有的語義角色標簽。

最終,後處理階段的作用是對前面得到的語義角色標注結果進行處理,包括刪除語義角色重復的論元等。

基於短語結構樹的語義角色標注方法

首先是第一步,候選論元剪除,具體方法如下:

將謂詞作為當前結點,依次考察它的兄弟結點:如果一個兄弟結點和當前結點在句法結構上不是並列的關系,則將它作為候選項。如果該兄弟結點的句法標簽是介詞短語,則將它的所有子節點都作為候選項。

將當前結點的父結點設為當前結點,重復上一個步驟,直至當前結點是句法樹的根結點。

舉個例子,候選論元就是圖上畫圈的:

經過剪除得到候選論元之後,進入論元識別階段,為分類器選擇有效的特徵。人們總結出了一些常見的有效特徵,比如謂詞本身、路徑、短語類型、位置、語態、中心詞、從屬類別、論元的第一個詞和最後一個詞、組合特徵等等。

然後進行論元標注,這里也需要找一些對應的特徵。然後後處理並不是必須的。

基於依存關系樹的語義角色標注方法

該語義角色標注方法是基於依存分析樹進行的。由於短語結構樹與依存結構樹不同,所以基於二者的語義角色標注方法也有不同。

在基於短語結構樹的語義角色標方法中,論元被表示為連續的幾個詞和一個語義角色標簽,比如上面圖給的『事故 原因』,這兩個詞一起作為論元A1;而在基於依存關系樹的語義角色標注方法中,一個論元被表示為一個中心詞和一個語義角色標簽,就比如在依存關系樹中,『原因』是『事故』的中心詞,那隻要標注出『原因』是A1論元就可以了,也即謂詞-論元關系可以表示為謂詞和論元中心詞之間的關系。

下面給一個例子:

句子上方的是原來的依存關系樹,句子下方的則是謂詞『調查』和它的各個論元之間的關系。

第一步仍然是論元剪除,具體方法如下:

將謂詞作為當前結點

將當前結點的所有子結點都作為候選項

將當前結點的父結點設為當前結點,如果新當前結點是依存句法樹的根結點,剪除過程結束,如果不是,執行上一步

論元識別和論元標注仍然是基於特徵的分類問題,也有一些人們總結出來的常見特徵。這里不詳述。

基於語塊的語義角色標注方法

我們前面知道,淺層語法分析的結果是base NP標注序列,採用的方法之一是IOB表示法,I表示base NP詞中,O表示詞外,B表示詞首。

基於語塊的語義角色標注方法將語義角色標注作為一個序列標注問題來解決。

基於語塊的語義角色標注方法一般沒有論元剪除這個過程,因為O相當於已經剪除了大量非base NP,也即不可能為論元的內容。論元辨識通常也不需要了,base NP就可以認為是論元。

我們需要做的就是論元標注,為所有的base NP標注好語義角色。與基於短語結構樹或依存關系樹的語義角色標注方法相比,基於語塊的語義角色標注是一個相對簡單的過程。

當然,因為沒有了樹形結構,只是普通序列的話,與前兩種結構相比,丟失掉了一部分信息,比如從屬關系等。

語義角色標注的融合方法

由於語義角色標注對句法分析的結果有嚴重的依賴,句法分析產生的錯誤會直接影響語義角色標注的結果,而進行語義角色標注系統融合是減輕句法分析錯誤對語義角色標注影響的有效方法。

這里所說的系統融合是將多個語義角色標注系統的結果進行融合,利用不同語義角色標注結果之間的差異性和互補性,綜合獲得一個最好的結果。

在這種方法中,一般首先根據多個不同語義角色標注結果進行語義角色標注,得到多個語義角色標注結果,然後通過融合技術將每個語義角色標注結果中正確的部分組合起來,獲得一個全部正確的語義角色標注結果。

融合方法這里簡單說一種基於整數線性規劃模型的語義角色標注融合方法,該方法需要被融合的系統輸出每個論元的概率,其基本思想是將融合過程作為一個推斷問題處理,建立一個帶約束的最優化模型,優化目標一般就是讓最終語義角色標注結果中所有論元的概率之和最大了,而模型的約束條件則一般來源於人們根據語言學規律和知識所總結出來的經驗。

除了基於整數線性規劃模型的融合方法之外,人們還研究了若干種其他融合方法,比如最小錯誤加權的系統融合方法。其基本思想是認為,不應該對所有融合的標注結果都一視同仁,我們在進行融合時應當更多的信賴總體結果較好的系統。

END

⑸ NLP之文本分類

作為NLP領域最經典的使用場景之一,文本分類積累了許多的實現方法。這里我們根據是否使用深度學習方法將文本分類主要分為一下兩個大類:

隨著統計學習方法的發展,特別是在90年代後互聯網在線文本數量增長和機器學習學科的興起,逐漸形成了一套解決大規模文本分類問題的經典玩法,這個階段的主要套路是人工特徵工程+淺層分類模型。整個文本分類問題就拆分成了 特徵工程 分類器 兩部分。

這里的特徵工程也就是將文本表示為計算機可以識別的、能夠代表該文檔特徵的特徵矩陣的過程。在基於傳統機器學習的文本分類中,我們通常將特徵工程分為 文本預處理、特徵提取、文本表示 等三個部分。

文本預處理過程是提取文本中的關鍵詞來表示文本的過程 。中文文本預處理主要包括 文本分詞 去停用詞 兩個階段。
文本分詞 ,是因為很多研究表明特徵粒度為詞粒度遠好於字粒度(其實很好理解,因為大部分分類演算法不考慮詞序信息,基於字粒度顯然損失了過多「n-gram」信息)。具體到中文分詞,不同於英文有天然的空格間隔,需要設計復雜的分詞演算法。傳統分詞演算法主要有 基於字元串匹配的正向/逆向/雙向最大匹配 基於理解的句法和語義分析消歧 基於統計的互信息/CRF方法 。近年來隨著深度學習的應用, WordEmbedding + Bi-LSTM+CRF方法 逐漸成為主流,本文重點在文本分類,就不展開了。
停止詞 文本中一些高頻的代詞、連詞、介詞等對文本分類無意義的詞 ,通常維護一個停用詞表,特徵提取過程中刪除停用表中出現的詞,本質上屬於特徵選擇的一部分。

特徵提取包括 特徵選擇 特徵權重計算 兩部分。
特徵選擇的基本思路 根據某個評價指標獨立的對原始特徵項(詞項)進行評分排序,從中選擇得分最高的一些特徵項,過濾掉其餘的特徵項 。常用的評價有:文檔頻率、互信息、信息增益、χ²統計量等。
特徵權重計算 主要是經典的TF-IDF方法及其擴展方法。 TF-IDF的主要思想 一個詞的重要度與在類別內的詞頻成正比,與所有類別出現的次數成反比

文本表示的目的是把文本預處理後的轉換成計算機可理解的方式,是決定文本分類質量最重要的部分。傳統做法常用 詞袋模型 (BOW, Bag Of Words)或 向量空間模型 (Vector Space Model),最大的 不足 是忽略文本上下文關系,每個詞之間彼此獨立,並且無法表徵語義信息。

大部分機器學習方法都在文本分類領域有所應用,比如樸素貝葉斯分類演算法(Naïve Bayes)、KNN、SVM、最大熵和神經網路等等。

FastText 是Facebook AI Research在16年開源的一種文本分類器。 其 特點 就是 fast 。相對於其它文本分類模型,如 SVM Logistic Regression 等模型,fastText能夠在保持分類效果的同時,大大縮短了訓練時間。

FastText方法包含三部分, 模型架構 層次SoftMax N-gram特徵

FastText模型架構和 Word2Vec 中的 CBOW 模型很類似,因為它們的作者都是Facebook的科學家Tomas Mikolov。不同之處在於,FastText 預測標簽 ,而CBOW 模型 預測中間詞

TextCNN 是利用卷積神經網路對文本進行分類的演算法,它是由 Yoon Kim 在2014年在 「 Convolutional Neural Networks for Sentence Classification 」 一文中提出的。詳細的原理圖如下。

特徵 :這里的特徵就是詞向量,有 靜態(static) 非靜態(non-static) 方式。static方式採用比如word2vec預訓練的詞向量,訓練過程不更新詞向量,實質上屬於遷移學習了,特別是數據量比較小的情況下,採用靜態的詞向量往往效果不錯。non-static則是在訓練過程中更新詞向量。推薦的方式是 non-static 中的 fine-tunning方式,它是以預訓練(pre-train)的word2vec向量初始化詞向量,訓練過程中調整詞向量,能加速收斂,當然如果有充足的訓練數據和資源,直接隨機初始化詞向量效果也是可以的。

通道(Channels) :圖像中可以利用 (R, G, B) 作為不同channel,而文本的輸入的channel通常是不同方式的embedding方式(比如 word2vec或Glove),實踐中也有利用靜態詞向量和fine-tunning詞向量作為不同channel的做法。

一維卷積(conv-1d) :圖像是二維數據,經過詞向量表達的文本為一維數據,因此在TextCNN卷積用的是一維卷積。一維卷積帶來的問題是需要設計通過不同 filter_size 的 filter 獲取不同寬度的視野。

Pooling層: 利用CNN解決文本分類問題的文章還是很多的,比如這篇 A Convolutional Neural Network for Modelling Sentences 最有意思的輸入是在 pooling 改成 (dynamic) k-max pooling,pooling階段保留 k 個最大的信息,保留了全局的序列信息。

參考文獻

⑹ nlp演算法是什麼

nlp演算法是自然語言處理。

自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。

相關信息:

自然語言處理是指利用人類交流所使用的自然語言與機器進行交互通訊的技術。通過人為的對自然語言的處理,使得計算機對其能夠可讀並理解。自然語言處理的相關研究始於人類對機器翻譯的探索。

雖然自然語言處理涉及語音、語法、語義、語用等多維度的操作,但簡單而言,自然語言處理的基本任務是基於本體詞典、詞頻統計、上下文語義分析等方式對待處理語料進行分詞,形成以最小詞性為單位,且富含語義的詞項單元。

⑺ 用Py做文本分析5:關鍵詞提取

關鍵詞指的是原始文檔的和核心信息,關鍵詞提取在文本聚類、分類、自動摘要等領域中有著重要的作用。

針對一篇語段,在不加人工干預的情況下提取出其關鍵詞

無監督學習——基於詞頻
思路1:按照詞頻高低進行提取

思路2:按照詞條在文檔中的重要性進行提取

IF-IDF是信息檢索中最常用的一種文本關鍵信息表示法,其基本的思想是如果某個詞在一篇文檔中出現的頻率高,並且在語料庫中其他文檔中很少出現,則認為這個詞具有很好的類別區分能力。

TF:Term Frequency,衡量一個term在文檔中出現得有多頻繁。平均而言出現越頻繁的詞,其重要性可能就越高。考慮到文章長度的差異,需要對詞頻做標准化:

IDF:Inverse Document Frequency,逆文檔概率,用於模擬在該語料的實際使用環境中,目標term的重要性。

TF-IDF:TF*IDF

優點:

(1)jieba

(2)sklearn

(3)gensim

前面介紹的TF-IDF屬於無監督中基於詞頻的演算法,TextRank演算法是基於圖形的演算法。

TextRank演算法的思想來源於PageRank演算法:

和基於詞頻的演算法相比,TextRank進一步考慮了文檔內詞條間的語義關系。

參考資料:
Python數據分析--玩轉文本挖掘

⑻ 文本分析包括什麼內容有沒有用過的說一下

文本分析其實是一個比較廣義的術語,涵蓋收集、提取、分析等等各種過程,所以它的用途蠻多的。就拿我所在的公司來說,在科研立項這個場景中,由於之前積累完成的項目多達上千個,每次要做新的科研項目的時候,就得跟之前所有的項目比對查重,防止重復立項,浪費經費。這個工作之前全是靠人力,基本上要一個人花兩天時間,後來我司就跟竹間智能合作,用文本分析技術幫忙建立了一套系統,可以針對文檔進行智能問答、知識推理、文本審 核、文本比對、文本查重等,能做很多事兒,而以後要啟動新項目,只需要上傳相關文檔,等個十來秒看查重結果就行。

⑼ 如何度量兩個詞之間的語義相似度

如何度量句子的語義相似度,很容易想到的是向量空間模型(VSM)和編輯距離的方法,比如A:「我爸是李剛」,B:「我兒子是李剛」,利用VSM方法A(我,爸,是,李剛)B(我,兒子,是,李剛),計算兩個向量的夾角餘弦值,不贅述;編輯距離就更好說了將「爸」,「兒子」分別替換掉,D(A,B)= replace_cost;

這是兩種相當呆的方法,屬於baseline中的baseline,換兩個例子看一下就知道A:「樓房如何建造?」,B:「高爾夫球怎麼打?」,C:「房子怎麼蓋?」,如果用VSM算很明顯由於B,C中有共同的詞「怎麼」,所以BC相似度高於AC;編輯距離同理;

解決這種問題方法也不難,只要通過同義詞詞典對所有句子進行擴展,「如何」、「怎麼」,「樓房」、「房子」都是同義詞或者近義詞,擴展後再算vsm或者edit distance對這一問題即可正解。這種方法一定程度上解決了召回率低的問題,但是擴展後引入雜訊在所難免,尤其若原句中含有多義詞時。例如:「打醬油」、「打毛衣」。在漢字中有些單字詞表達了相當多的意義,在董振東先生的知網(hownet)中對這種類型漢字有很好的語義關系解釋,通過hownet中詞語到義元的樹狀結構可以對對詞語粒度的形似度進行度量。

問題到這里似乎得到了不錯的解答,但實際中遠遠不夠。VSM的方法把句子中的詞語看做相互獨立的特徵,忽略了句子序列關系、位置關系對句子語義的影響;Edit Distance考慮了句子中詞語順序關系,但是這種關系是機械的置換、移動、刪除、添加,實際中每個詞語表達了不同的信息量,同樣的詞語在不同詞語組合中包含的信息量或者說表達的語義信息大不相同。What about 句法分析,計算句法樹的相似度?這個比前兩種方法更靠譜些,因為句法樹很好的描述了詞語在句子中的地位。實際效果要待實驗證實。

對了,還有一種方法translation model,IBM在機器翻譯領域的一大創舉,需要有大量的語料庫進行訓練才能得到理想的翻譯結果。當然包括中間詞語對齊結果,如果能夠利用web資源建立一個高質量的語料庫對兩兩相似句對通過EM迭代詞語對齊,由詞語對齊生成句子相似度,這個。。想想還是不錯的方法!

⑽ 語義分析與文本分析有什麼區別,急急急!!!!!

1,語義分析是編譯過程的一個邏輯階段,
語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查,進行類型審查。語義分析是審查源程序有無語義錯誤,為代碼生成階段收集類型信息。比如語義分析的一個工作是進行類型審查,審查每個算符是否具有語言規范允許的運算對象,當不符合語言規范時,編譯程序應報告錯誤。如有的編譯程序要對實數用作數組下標的情況報告錯誤。又比如某些某些程序規定運算對象可被強制,那麼當二目運算施於一整型和一實型對象時,編譯程序應將整型轉換為實型而不能認為是源程序的錯誤。
2,文本分析是指對文本的表示及其特徵項的選取;文本分析是文本挖掘、信息檢索的一個基本問題,它把從文本中抽取出的特徵詞進行量化來表示文本信息。將它們從一個無結構的原始文本轉化為結構化的計算機可以識別處理的信息,即對文本進行科學的抽象,建立它的數學模型,用以描述和代替文本。使計算機能夠通過對這種模型的計算和操作來實現對文本的識別。由於文本是非結構化的數據,要想從大量的文本中挖掘有用的信息就必須首先將文本轉化為可處理的結構化形式。目前人們通常採用向量空間模型來描述文本向量,但是如果直接用分詞演算法和詞頻統計方法得到的特徵項來表示文本向量中的各個維,那麼這個向量的維度將是非常的大。這種未經處理的文本矢量不僅給後續工作帶來巨大的計算開銷,使整個處理過程的效率非常低下,而俯范碘既鄢煥碉唯冬瀝且會損害分類、聚類演算法的精確性,從而使所得到的結果很難令人滿意。因此,必須對文本向量做進一步凈化處理,在保證原文含義的基礎上,找出對文本特徵類別最具代表性的文本特徵。為了解決這個問題,最有效的辦法就是通過特徵選擇來降維。

閱讀全文

與文本語義分析演算法相關的資料

熱點內容
蘋果手機文檔安卓上怎麼打開 瀏覽:525
如何做淘寶代理伺服器 瀏覽:662
gz壓縮文件夾 瀏覽:177
字母h從右往左跑的c語言編程 瀏覽:127
安卓手機如何擁有蘋果手機橫條 瀏覽:765
業余編程語言哪個好學 瀏覽:137
按照文件夾分個壓縮 瀏覽:104
航空工業出版社單片機原理及應用 瀏覽:758
如何在電信app上綁定親情號 瀏覽:376
安卓的怎麼用原相機拍月亮 瀏覽:805
配音秀為什麼顯示伺服器去配音了 瀏覽:755
c盤清理壓縮舊文件 瀏覽:325
app怎麼交付 瀏覽:343
圖蟲app怎麼才能轉到金幣 瀏覽:175
如何做徵文app 瀏覽:446
用什麼app管理斐訊 瀏覽:169
安卓如何下載寶可夢劍盾 瀏覽:166
編譯器開發屬於哪個方向 瀏覽:940
megawin單片機 瀏覽:687
以色列加密貨幣監督 瀏覽:909