欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    作者:黃天元,復旦大學博士在讀分詞工具分好以后關鍵詞價格,熱愛數據科學與開源工具(R/),致力于利用數據科學迅速積累行業經驗優勢和科學知識發現,涉獵內容包括但不限于信息計量、機器學習、數據可視化、應用統計建模、知識圖譜等,著有《R語言高效數據處理指南》、《文本數據挖掘——基于R語言》(《文本數據挖掘 基于R語言》(黃天元)【摘要 書評 試讀】- 京東圖書)。知乎專欄:R語言數據挖掘郵箱:.歡迎合作交流。

    關于提取關鍵詞的方法,除了TF-IDF算法,比較有名的還有算法。它是基于衍生出來的自然語言處理算法,是一種基于圖論的排序算法,以文本的相似度作為邊的權重,迭代計算每個文本的值,最后把排名高的文本抽取出來,作為這段文本的關鍵詞或者文本摘要。之所以提到關鍵詞和文本摘要,兩者其實宗旨是一樣的,就是自動化提取文本的重要表征文字。

    如果分詞是以詞組作為切分,那么得到的是關鍵詞。以詞作為切分的時候,構成詞與詞之間是否連接的,是詞之間是否相鄰。相鄰關系可以分為n元,不過在中文中,我認為2元關系已經非常足夠了(比如一句話是:“我/有/一只/小/毛驢/我/從來/也/不/騎”,那么設置二元會讓“一只”和“毛驢”發生關聯,這就足夠了)。如果是以句子切分的,那么得到的稱之為文本摘要(其實就是關鍵的句子,俗稱關鍵句)。如果要得到文本的關鍵句子,還是要對每句話進行分詞,得到每句話的基本詞要素。根據句子之間是否包含相同的詞語,我們可以得到句子的相似度矩陣,然后再根據相似度矩陣來得到最關鍵的句子(也就是與其他句子關聯性最強的那個句子)。當句子比較多的時候,這個計算量是非常大的。 下面,我要用R語言的包來實現關鍵詞的提取和文本摘要。

    準備工作

    安裝必備的包。

    library(pacman)
    p_load(tidyverse,tidytext,textrank,rio,jiebaR)

    然后,導入數據。數據可以在我的中獲得(/hope-data-//tree//R%E8%AF%AD%E8%A8%80%E5%85%B3%E9%94%AE%E8%AF%8D%E6%8F%90%E5%8F%96)。文件名稱為.rda。

    import("./hire_text.rda") -> hire_text
    hire_text

    這里面包含了互聯網公司的一些招聘信息,一共有4102條記錄,只有一列,列名稱為,包含了企業對崗位要求的描述。

    關鍵詞提取

    因為要做關鍵詞和關鍵句的提取,因此我們要進行分詞和分句。分詞還是利用,老套路。如果沒有了解的話,請看專欄之前的文章(R語言自然語言處理系列)。不過這次,我們希望能夠在得到詞頻的同時,得到每個詞的詞性,然后只把名詞提取出來。 分詞代碼如下:

    hire_text %>% 
      mutate(id = 1:n()) -> hire_txt  #給文檔編號
    ?
    worker(type = "tag") -> wk   #構造一個分詞器,需要得到詞性
    ?
    hire_txt %>% 
      mutate(words = map(hire_text,tagging,jieba = wk)) %>%   #給文檔進行逐個分詞
      mutate(word_tag = map(words,enframe,name = "tag",value = "word")) %>%               
      select(id,word_tag) -> hire_words

    然后,我們分組進行關鍵詞提取。

    以后高考語文很關鍵嗎_分詞工具分好以后關鍵詞價格_分詞工具效果 比較

    #構造提取關鍵詞的函數
    ?
    extract_keywords = function(dt){
      textrank_keywords(dt$word,relevant = str_detect(dt$tag,"^n"),ngram_max = 2) %>% 
        .$keywords
    }
      
    hire_words %>% 
      mutate(textrank.key = map(word_tag,extract_keywords)) %>% 
      select(-word_tag) -> tr_keyword

    現在我們的數據框中,包含了每個文檔的關鍵詞。每個關鍵詞列表中,包含freq和ngram兩列,freq代表詞頻,ngram代表多少個n元,2元就是“上海市-閔行區”這種形式,1元就是“上海市”、“閔行區”這種形式。 現在,我要從中挑選每篇文章最重要的3個關鍵詞。挑選規則是:詞頻必須大于1,在此基礎上,n元越高越好。

    tr_keyword %>% 
      unnest() %>% 
      group_by(id) %>% 
      filter(freq > 1) %>% 
      top_n(3,ngram) %>% 
      ungroup() -> top3_keywords
    ?
    top3_keywords
    ## # A tibble: 3,496 x 4
    ##       id keyword       ngram  freq
    ##               
    ##  1     1 上海市-長寧區     2     2
    ##  2     1 長寧區            1     2
    

    分詞工具分好以后關鍵詞價格_分詞工具效果 比較_以后高考語文很關鍵嗎

    ## 3 1 上海市-靜安區 2 2 ## 4 4 客戶 1 4 ## 5 5 招商銀行 1 2 ## 6 6 事業部 1 3 ## 7 7 房地產 1 2 ## 8 9 技術 1 3 ## 9 10 電商 1 2 ## 10 10 協調 1 2 ## # ... with 3,486 more rows

    仔細觀察發現,有的文檔就沒有出現過,因為他們分詞之后,每個詞的詞頻都是1。現在讓我們統計一下最火的十大高頻詞。

    top3_keywords %>% 
      count(keyword) %>% 
      arrange(desc(n)) %>% 
      slice(1:10)
    ## # A tibble: 10 x 2
    ##    keyword     n
    ##       
    ##  1 客戶      298
    ##  2 公司      173
    ##  3 產品      110
    ##  4 能力       97
    ##  5 項目       89
    ##  6 技術       51
    ##  7 市場       48
    

    分詞工具效果 比較_分詞工具分好以后關鍵詞價格_以后高考語文很關鍵嗎

    ## 8 系統 48 ## 9 廣告 41 ## 10 企業 41

    這些詞分別是:客戶、公司、產品、能力、項目、技術、市場、系統、廣告、企業。

    文本摘要

    文本摘要其實就是從文檔中提出我們認為最關鍵的句子。我們會用包的函數,這要求我們有一個分句的數據框,還有一個分詞的數據框(不過這次需要去重復,也就是說分詞表中每個文檔不能有重復的詞)。非常重要的一點是,這次分詞必須以句子為單位進行劃分。 我們明確一下任務:對每一個招聘文檔,我們要挑選出這個文檔中最關鍵的一句話。要解決這個大問題,需要先解決一個小問題。就是對任意的一個長字符串,我們要能夠切分成多個句子,然后按照句子分組,對其進行分詞。然后我們會得到一個句子表格和單詞表格。 其中,我們切分句子的標準是,切開任意長度的空格,這在正則表達式中表示為“[:space:]+”。

    get_sentence_table = function(string){
      string %>% 
        str_split(pattern = "[:space:]+") %>% 
        unlist %>% 
        as_tibble() %>% 
        transmute(sentence_id = 1:n(),sentence = value)
    }

    上面這個函數,對任意的一個字符串,能夠返回一個含有兩列的數據框,第一列是句子的編號,另一列是句子內容。我們姑且把這個數據框稱之為。 下面我們要構造另一個函數,對于任意的,我們需要返回一個分詞表格,包含兩列,第一列是所屬句子的編號,第二列是分詞的單詞內容。

    wk = worker()  #在外部構造一個jieba分詞器
    ?
    get_word_table = function(string){
      string %>% 
        str_split(pattern = "[:space:]+") %>% 
        unlist %>% 
        as_tibble() %>% 
        transmute(sentence_id = 1:n(),sentence = value) %>% 
        mutate(words = map(sentence,segment,jieba = wk)) %>% 
        select(-sentence) %>% 
    

    分詞工具分好以后關鍵詞價格_分詞工具效果 比較_以后高考語文很關鍵嗎

    unnest() }

    如果分詞器要在內部構造,每次運行函數都要構造一次,會非常消耗時間。 目前,對于任意一個字符串,我們有辦法得到它的關鍵句了。我們舉個例子:

    hire_text[[1]][1] -> test_text
    test_text %>% get_sentence_table -> st
    st %>% get_word_table -> wt
    ## Warning in stri_split_regex(string, pattern, n = n, simplify = simplify, :
    ## argument is not an atomic vector; coercing

    有了這st和wt這兩個表格,現在我們要愉快地提取關鍵句子。

    textrank_sentences(data = st,terminology = wt) %>% 
      summary(n = 1)  #n代表要top多少的關鍵句子
    ## [1] "1279弄6號國峰科技大廈"

    我們給這個取最重要關鍵句子也編寫一個函數。

    get_textrank_sentence = function(st,wt){
      textrank_sentences(data = st,terminology = wt) %>% 
      summary(n = 1)
    }

    因為數據量比較大,我們只求第10-20條記錄進行求解。不過,如果句子只有一句話,那么是會報錯的。因此我們要首先去除一個句子的記錄。

    hire_txt %>% 
      slice(10:20) %>% 
      mutate(st = map(hire_text,get_sentence_table)) %>% 
      mutate(wt = map(hire_text,get_word_table)) %>% 
      mutate(sentence.no = unlist(map(st,nrow))) %>% 
      select(-hire_text) %>% 
    

    分詞工具分好以后關鍵詞價格_分詞工具效果 比較_以后高考語文很關鍵嗎

    filter(sentence.no != 1) %>% mutate(key_sentence = unlist(map2(st,wt,get_textrank_sentence))) %>% select(id,sentence.no,key_sentence) -> hire_abstract hire_abstract ## # A tibble: 10 x 3 ## id sentence.no key_sentence ## ## 1 10 9 開拓電商行業潛在客戶 ## 2 11 5 EHS ## 3 12 9 負責招聘渠道的維護和更新; ## 4 13 6 榮獲中國房地產經紀百強企業排名前六強; ## 5 14 7 2、邏輯思維、分析能力強,工作謹慎、認真,具有良好的書面及語言表達能力;~ ## 6 15 5 2、能獨立完成欄目包裝、影視片頭、廣告片、宣傳片的制作,包括創意圖設計、動畫制作、特效、剪輯合成等工作;~ ## 7 16 7 3、公司為員工提供帶薪上崗培訓和豐富的在職培訓,有廣闊的職業發展與晉升空間;~ ## 8 17 7 您與該職位的匹配度? ## 9 18 13 接觸并建立與行業內重點企業的良好關系,及時了解需求狀態;~ ## 10 20 7 具有財務、金融、稅務等領域專業知識;具有較強分析判斷和解決問題的能力;~

    如果對所有記錄的摘要感興趣,去掉slice(10:20) %>%這一行即可。等待時間可能會較長。

    小結

    實踐證明,算法是一個比較耗時的算法,因為它依賴于圖計算,需要構成相似度矩陣。當數據量變大的時候,運行時間會呈“幾何級”增長。但是對于中小型的文本來說分詞工具分好以后關鍵詞價格,這個方法還是非常不錯的。但是中小型的文本,還需要摘要么?盡管如此,這還是一個非常直觀的算法,如果TF-IDF在一些時候不好用的話,這是一個非常好的候補選項。

    參考資料

    包基本教程

    手把手 | 基于算法的文本摘要(附代碼)

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有