最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬取十篇新聞統(tǒng)計TF-IDF

 更新時間:2018年01月03日 11:21:54   作者:果7  
這篇文章主要為大家詳細介紹了Python爬取十篇新聞統(tǒng)計TF-IDF的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

統(tǒng)計十篇新聞TF-IDF

統(tǒng)計TF-IDF詞頻,每篇文章的 top10 的高頻詞存儲為 json 文件

TF-IDF

TF-IDF(term frequency–inverse document frequency)是一種用于資訊檢索與文本挖掘的常用加權(quán)技術(shù)。TF-IDF是一種統(tǒng)計方法,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。TF-IDF加權(quán)的各種形式常被搜索引擎應用,作為文件與用戶查詢之間相關(guān)程度的度量或評級。除了TF-IDF以外,互聯(lián)網(wǎng)上的搜索引擎還會使用基于連結(jié)分析的評級方法,以確定文件在搜尋結(jié)果中出現(xiàn)的順序。
假如一篇文件的總詞語數(shù)是100個,而詞語“母牛”出現(xiàn)了3次,那么“母?!币辉~在該文件中的詞頻就是3/100=0.03。一個計算文件頻率(DF)的方法是測定有多少份文件出現(xiàn)過“母?!币辉~,然后除以文件集里包含的文件總數(shù)。所以,如果“母牛”一詞在1,000份文件出現(xiàn)過,而文件總數(shù)是10,000,000份的話,其逆向文件頻率就是log(10,000,000 / 1,000)=4。最后的TF-IDF的分數(shù)為0.03 * 4=0.12。 —— [ 維基百科 ]

博主選擇的是chinadaily的十篇新聞.

1.使用http request請求
2.使用Beautiful Soup來抓取文章標題和內(nèi)容
3.統(tǒng)計TF-IDF
4.保存到json文件中

代碼塊

@requires_authorization
#coding=utf-8

import requests
import bs4
import sys
import math
import json
reload(sys)
sys.setdefaultencoding('utf-8')

url_list = ['http://www.chinadaily.com.cn/china/2016-04/20/content_24701635.htm',
      'http://www.chinadaily.com.cn/china/2016-04/20/content_24700746.htm',
      'http://www.chinadaily.com.cn/china/2016-04/20/content_24681482.htm',
      'http://www.chinadaily.com.cn/china/2016-04/19/content_24675530.htm',
      'http://www.chinadaily.com.cn/china/2016-04/19/content_24675455.htm',
      'http://www.chinadaily.com.cn/china/2016-04/19/content_24674074.htm',
      'http://www.chinadaily.com.cn/china/2016-04/19/content_24655536.htm',
      'http://www.chinadaily.com.cn/china/2016-04/18/content_24643685.htm',
      'http://www.chinadaily.com.cn/china/2016-04/18/content_24636917.htm',
      'http://www.chinadaily.com.cn/china/2016-04/15/content_24562198.htm'
      ]

articles_title = []
articles_content = []

for pos,url in enumerate(url_list):
  r = requests.get(url)
  soup1 = bs4.BeautifulSoup(r.text)
  soup2 = bs4.BeautifulSoup(str(soup1.find_all(id="Title_e")))
  articles_title.append(soup2.h1.string)
  mystr = ""
  soup3 = bs4.BeautifulSoup(str(soup1.find_all(id="Content")))
  for x in soup3.find_all("p"):
    mystr = mystr + x.string

  str_p = ""
  contents = []
  for pos,x in enumerate(mystr):
    if x == '.' or x == ',':
      if pos < (len(mystr) - 1) and mystr[pos+1] >= '0' and mystr[pos+1] <= '9':
        str_p = str_p + x
      elif str_p == "":
        continue
      else:
        contents.append(str_p)
        str_p = ""
    elif x == '(' or x == ')' or x == ' ' or x == '"' or x == '[' or x == ']' or x == '-':
      if str_p == "":
        continue
      else:
        contents.append(str_p)
        str_p = ""
    else:
      str_p = str_p + x

  articles_content.append(contents)

Dict_idf = {}
DictList = []

for content in articles_content:
  Dict_tf = {}
  for x in content:
    if not Dict_tf.has_key(x):
      Dict_tf[x] = 1.0
      if not Dict_idf.has_key(x):
        Dict_idf[x] = 1.0
      else:
        Dict_idf[x] += 1.0
    else:
      Dict_tf[x] += 1.0

  for k, v in Dict_tf.items():
    Dict_tf[k] = v / len(content)

  DictList.append(Dict_tf)

for k, v in Dict_idf.items():
  Dict_idf[k] = math.log(float(len(url_list)) / v)

for pos,x in enumerate(DictList):
  for k,v in x.items():
    DictList[pos][k] = v*Dict_idf[k]
  DictList[pos] = sorted(x.iteritems(), key=lambda d: d[1], reverse=True)

"""
[
  [
    article_titile:"XXXX"
    [
      {
        word:"hello"
        value:3.5
      }
      {
        word:"hello"
        value:3.5
      }
      {
        word:"hello"
        value:3.5
      }
      ...
    ]
  ]
]
"""

data = []
for pos in range(10):
  data2=[]
  data2.append("article_titile:")
  data2.append(articles_title[pos])
  data2.append([{"word": k,"value":round(v,4)} for k,v in DictList[pos][:10]])
  data.append(data2)

# Writing JSON data
with open('data.json', 'w') as f:
  json.dump(data, f)

使用json.cn查看數(shù)據(jù):

這里寫圖片描述

github地址:https://github.com/mqsee/learngit

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實現(xiàn)的按要求生成手機號功能示例

    python實現(xiàn)的按要求生成手機號功能示例

    這篇文章主要介紹了python實現(xiàn)的按要求生成手機號功能,涉及Python流程控制、隨機數(shù)操作及數(shù)學運算相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • wxPython+Matplotlib繪制折線圖表

    wxPython+Matplotlib繪制折線圖表

    這篇文章主要介紹了wxPython+Matplotlib繪制折線圖表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Django中間件基礎(chǔ)用法詳解

    Django中間件基礎(chǔ)用法詳解

    這篇文章主要介紹了Django中間件基礎(chǔ)用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python實現(xiàn)學生管理系統(tǒng)開發(fā)

    python實現(xiàn)學生管理系統(tǒng)開發(fā)

    這篇文章主要為大家詳細介紹了python實現(xiàn)學生管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • python實現(xiàn)的簡單窗口倒計時界面實例

    python實現(xiàn)的簡單窗口倒計時界面實例

    這篇文章主要介紹了python實現(xiàn)的簡單窗口倒計時界面,實例分析了Python基于Tkinter操作windows窗口界面的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • Python 在 VSCode 中使用 IPython Kernel 的方法詳解

    Python 在 VSCode 中使用 IPython Kernel 的方法詳解

    這篇文章主要介紹了Python 在 VSCode 中使用 IPython Kernel 的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • python?matplotlib畫圖時坐標軸重疊顯示不全和圖片保存時不完整的問題解決

    python?matplotlib畫圖時坐標軸重疊顯示不全和圖片保存時不完整的問題解決

    最近工作中遇到了matplotlib保存圖片坐標軸不完整的問題,所以這篇文章主要給大家介紹了關(guān)于python?matplotlib畫圖時坐標軸重疊顯示不全和圖片保存時不完整問題的解決方法,需要的朋友可以參考下
    2022-07-07
  • Anaconda環(huán)境克隆、遷移的詳細步驟

    Anaconda環(huán)境克隆、遷移的詳細步驟

    最近需要在多臺計算機上工作,每次重新部署環(huán)境比較麻煩,所以學習一下anaconda環(huán)境遷移的方法,下面這篇文章主要給大家介紹了關(guān)于Anaconda環(huán)境克隆、遷移的詳細步驟,需要的朋友可以參考下
    2022-08-08
  • Python腳本破解壓縮文件口令實例教程(zipfile)

    Python腳本破解壓縮文件口令實例教程(zipfile)

    這篇文章主要給大家介紹了關(guān)于Python腳本破解壓縮文件口令(zipfile)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-06-06
  • 名片管理系統(tǒng)python版

    名片管理系統(tǒng)python版

    這篇文章主要為大家詳細介紹了名片管理系統(tǒng)python版的相關(guān)代碼,數(shù)據(jù)保存導入Excel,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論

福安市| 泸水县| 营山县| 丹凤县| 沽源县| 军事| 西乌珠穆沁旗| 安福县| 滨海县| 永福县| 宁夏| 高台县| 收藏| 汉中市| 安康市| 宁远县| 邵东县| 肥东县| 天气| 穆棱市| 龙游县| 陈巴尔虎旗| 武乡县| 宜城市| 砚山县| 清新县| 桐庐县| 株洲县| 丰镇市| 留坝县| 汶川县| 常山县| 东乡县| 镇赉县| 侯马市| 通渭县| 南和县| 喀喇| 讷河市| 聊城市| 虎林市|