日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gensim提取一个句子的关键词_聊一聊 NLPer 如何做关键词抽取

發布時間:2024/7/23 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gensim提取一个句子的关键词_聊一聊 NLPer 如何做关键词抽取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信公眾號:NLP從入門到放棄?

有興趣的去github看更多NLP相關知識總結:

https://github.com/DA-southampton/NLP_ability?github.com

關鍵詞的提取,也可以稱之為文本標簽提取。

比如說,”今天這頓燒烤是真不錯啊“,在這句話中,”燒烤“這個詞就可以被認為是一個關鍵詞,或者說這個句子的一個標簽。

這個標簽在一定程度上能夠表現出這個句子的含義,比如這個”燒烤“,如果用在文本分類任務中,可以隱含帶有”美食“這個類別的信息。

這些標簽有些時候也可以用在推薦系統的召回,比如直接按照”燒烤“這個標簽做一路召回。

對于關鍵詞的提取一般來說分為抽取式和生成式。其實類比到摘要,其實也是分為抽取式和生成式。

生成式有一個缺點就是有些結果不可控,這其實還挺要命的。

對于抽取式,就是從現有的數據中拿出來詞組。最差的結果也就是拿出的單詞并不重要,不是我們想要的。

我們的重點是在抽取式提取關鍵詞。

關鍵詞的提取可以分為兩個步驟:召回+排序

1.召回

召回就是得到文本中的候選關鍵詞,也就是得到這個句子中有可能是關鍵詞的詞匯。

這一步,可以做的方法有很多,比如

  • 我們有積累的關鍵詞詞庫,在這里直接匹配出來。
  • 一些符合的詞性的候選詞,比如我挑選出名詞作為候選詞
  • 還可以基于一些統計特征提出候選詞,比如TF-IDF(有些時候統計特征也會用在排序中作為特征)
  • 基于一些規則,比如一個句子出現了人名地名,書名號中詞,這些很有可能就是關鍵詞
  • 召回其實是一個很重要的部分,在這一步驟,盡可能的召回有用的詞匯。我自己的標準是寧可多不能少。如果多了,無非就是增加了資源消耗,但是少了,可能在排序階段就是無米之炊了。

    2.排序

    排序階段,我們可以將方法大致的分為有監督和無監督的方法

    2.1無監督抽取關鍵詞

    對于無監督,我們分為基于統計和基于圖。基于統計就是TF-IDF和各種變種。基于圖最常見的就是TextRank。

    關鍵詞提取的一個baseline就是 TF-IDF 提取,這種方法效果已經很好。投入產出比很高,我們一般需要去掉常用的停用詞,保留重要的詞語。

    TF-IDF基于統計,易于實現,但是缺點就是沒有考慮詞與詞,詞與文檔之間的關系。是割裂的。

    另一個baseline就是基于圖的TextRank, TextRank 由 PageRank 演變而來。

    相比于TF-IDF,TextRank考慮了詞與詞之間的關系(提取思想就是從窗口之間的詞匯關系而來),但是缺點是它針對的是單個文本,而不是整個語料,在詞匯量比較少的文本中,也就是短文中,效果會比較差。

    隨著數據量的積累,我們需要把模型更換到有監督模型加上。一般來說,有監督分為兩種,一種是看做序列標注,一種是看做二分類的問題。

    2.2有監督之二分類

    先說二分類問題,比較簡單,就是找到詞匯的各種特征,去判斷這個詞匯是不是這個文本的關鍵詞。

    我大概羅列一些可能會用到的特征。

  • 位置特征:
  • 使用位置特征是我們基于文本關鍵詞出現的位置是在大量數據的情況下是有規律可言的,比如微博文本中出現在##符號中部分詞匯有很大概率就是文本的一個關鍵詞。

    是否出現在開頭,是否出現在中間部分,是否出現在末尾,出現的位置(具體是第幾個單詞);相對于整個文本的位置;是否出現在##符號中...

  • 統計特征:
  • 共現矩陣信息;詞頻;逆詞頻;詞性;詞跨度;關鍵詞所在句子的最大長度/最小長度/平均長度;

  • 向量特征:
    關鍵詞詞向量和文檔向量的相似性
  • 2.3有監督之序列標注

    關鍵詞的提取,就是一個典型的序列標注的問題。判斷句子中關鍵詞的開頭中間結尾的位置。

    序列標注最基礎的就是HMM和CRF方法,但是特征工程比較復雜。

    為了解決特征工程復雜的問題,我們使用深度學習模型序列標注。

    關于序列標注,大家可以參考我這個文章內容:

    工業級命名體識別經驗+代碼總結

    3.新詞發現

    還會出現一個問題,如果我們使用二分類判定關鍵詞,上述的過程我們都是基于我們的分詞器來做的。有可能會出現一些新詞,由于分詞錯誤,不能及時的出現在你的候選詞庫中,比如”爺青結“。

    這個時候,我們需要一個新詞發現系統,持續不斷的補充到詞庫中,在召回階段可以提升召回率。

    對于新詞發現來說,基操就是從文本的自由程度和凝固程度來判斷是否是新詞,這樣的問題就是閾值不好調整從而導致召回和精準不好平衡。

    我們還可以通過別的方法離線挖掘實體詞補充道詞庫中,之前有借鑒美團ner的文章實現了一下,效果還不錯,在這里,大家可以參考我這個文章:實體庫構建:離線大規模新詞實體挖掘

    總結

    以上是生活随笔為你收集整理的gensim提取一个句子的关键词_聊一聊 NLPer 如何做关键词抽取的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。