成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用NodeJS進行Twitter情感分析

開發 前端
如果你想知道大家對某件事情的看法,Twitter 是最好的地方了。Twitter 是觀點持續不斷的涌現出來的地方,每秒鐘大概有 6000 條新 Twitter 發送出來。因特網上的發展很快,如果你想與時俱進或者跟上潮流,Twitter 就是你要去的地方。

[[242505]]

如果你想知道大家對某件事情的看法,Twitter 是最好的地方了。Twitter 是觀點持續不斷的涌現出來的地方,每秒鐘大概有 6000 條新 Twitter 發送出來。因特網上的發展很快,如果你想與時俱進或者跟上潮流,Twitter 就是你要去的地方。

現在,我們生活在一個數據為王的時代,很多公司都善于運用 Twitter 上的數據。根據測量到的他們新產品的人氣,嘗試預測之后的市場趨勢,分析 Twitter 上的數據有很多用處。通過數據,商人把產品賣給合適的用戶,收集關于他們品牌和改進的反饋,或者獲取他們產品或促銷活動失敗的原因。不僅僅是商人,很多政治和經濟上的決定是在觀察人們意見的基礎上所作的。今天,我會試著讓你感受下關于 Twitter 的簡單 情感分析,判斷這個 Twitter 是正能量、負能量還是中性的。這不會像專業人士所用的那么復雜,但至少,它會讓你知道挖掘觀念的想法。

我們將使用 NodeJs,因為 JavaScript 太常用了,而且它還是最容易入門的語言。 

前置條件:

  • 安裝了 NodeJs 和 NPM
  • 有 NodeJs 和 NPM 包的經驗
  • 熟悉命令行。

好了,就是這樣。開始吧。 

開始

為了你的項目新建一個目錄,進入這個目錄下面。打開終端(或是命令行)。進入剛創建的目錄下面,運行命令 npm init -y。這會在這個目錄下創建一個 package.json 文件。現在我們可以安裝需要的 npm 包了。只需要創建一個新文件,命名為 index.js 然后我們就完成了初始的編碼。 

獲取推文

好了,我們想要分析 Twitter ,為了實現這個目的,我們需要以編程的方式訪問 Twitter。為此,我們要用到 twit 包。因此,先用 npm i wit 命令安裝它。我們還需要注冊一個 App,以通過我們的賬戶來訪問 Twitter 的 API。點擊這個 鏈接,填寫所有項目,從 “Keys and Access Token” 標簽頁中復制 “Consumer Key”、“Consumer Secret”、“Access token” 和 “Access Token Secret” 這幾項到一個 .env 文件中,就像這樣:

  1. # .env
  2. # replace the stars with values you copied
  3. CONSUMER_KEY=************
  4. CONSUMER_SECRET=************
  5. ACCESS_TOKEN=************
  6. ACCESS_TOKEN_SECRET=************

現在開始。

用你最喜歡的代碼編輯器打開 index.js。我們需要用 npm i dotenv 命令安裝 dotenv 包來讀取 .env 文件。好了,創建一個 API 實例。

  1. const Twit = require('twit');
  2. const dotenv = require('dotenv');
  3.  
  4. dotenv.config();
  5.  
  6. const { CONSUMER_KEY
  7. , CONSUMER_SECRET
  8. , ACCESS_TOKEN
  9. , ACCESS_TOKEN_SECRET
  10. } = process.env;
  11.  
  12. const config_twitter = {
  13. consumer_key: CONSUMER_KEY,
  14. consumer_secret: CONSUMER_SECRET,
  15. access_token: ACCESS_TOKEN,
  16. access_token_secret: ACCESS_TOKEN_SECRET,
  17. timeout_ms: 60*1000
  18. };
  19.  
  20. let api = new Twit(config_twitter);

這里已經用所需的配置文件建立了到 Twitter 上的連接。但我們什么事情都沒做。先定義個獲取推文的函數:

  1. async function get_tweets(q, count) {
  2. let tweets = await api.get('search/tweets', {q, count, tweet_mode: 'extended'});
  3. return tweets.data.statuses.map(tweet => tweet.full_text);
  4. }

這是個 async 函數,因為 api.get 函數返回一個 promise 對象,而不是 then 鏈,我想通過這種簡單的方式獲取推文。它接收兩個參數 qcountq 是查詢或者我們想要搜索的關鍵字,count 是讓這個 api 返回的推文數量。

目前為止我們擁有了一個從 Twitter 上獲取完整文本的簡單方法。不過這里有個問題,現在我們要獲取的文本中可能包含某些連接或者由于轉推而被截斷了。所以我們會編寫另一個函數,拆解并返回推文的文本,即便是轉發的推文,并且其中有鏈接的話就刪除。

  1. function get_text(tweet) {
  2. let txt = tweet.retweeted_status ? tweet.retweeted_status.full_text : tweet.full_text;
  3. return txt.split(/ |\n/).filter(v => !v.startsWith('http')).join(' ');
  4. }
  5.  
  6. async function get_tweets(q, count) {
  7. let tweets = await api.get('search/tweets', {q, count, 'tweet_mode': 'extended'});
  8. return tweets.data.statuses.map(get_text);
  9. }

現在我們拿到了文本。下一步是從文本中獲取情感。為此我們會使用 npm 中的另一個包 —— sentiment。讓我們像安裝其他包那樣安裝 sentiment,添加到腳本中。

  1. const sentiment = require('sentiment')

sentiment 用起來很簡單。我們只用把 sentiment 函數用在我們想要分析的文本上,它就能返回文本的相對分數。如果分數小于 0,它表達的就是消極情感,大于 0 的分數是積極情感,而 0,如你所料,表示中性的情感。基于此,我們將會把推文打印成不同的顏色 —— 綠色表示積極,紅色表示消極,藍色表示中性。為此,我們會用到 colors 包。先安裝這個包,然后添加到腳本中。

  1. const colors = require('colors/safe');

好了,現在把所有東西都整合到 main 函數中。

  1. async function main() {
  2. let keyword = \* define the keyword that you want to search for *\;
  3. let count = \* define the count of tweets you want *\;
  4. let tweets = await get_tweets(keyword, count);
  5. for (tweet of tweets) {
  6. let score = sentiment(tweet).comparative;
  7. tweet = `${tweet}\n`;
  8. if (score > 0) {
  9. tweet = colors.green(tweet);
  10. } else if (score < 0) {
  11. tweet = colors.red(tweet);
  12. } else {
  13. tweet = colors.blue(tweet);
  14. }
  15. console.log(tweet);
  16. }
  17. }

最后,執行 main 函數。

  1. main();

就是這樣,一個簡單的分析推文中的基本情感的腳本。

  1. \\ full script
  2. const Twit = require('twit');
  3. const dotenv = require('dotenv');
  4. const sentiment = require('sentiment');
  5. const colors = require('colors/safe');
  6.  
  7. dotenv.config();
  8.  
  9. const { CONSUMER_KEY
  10. , CONSUMER_SECRET
  11. , ACCESS_TOKEN
  12. , ACCESS_TOKEN_SECRET
  13. } = process.env;
  14.  
  15. const config_twitter = {
  16. consumer_key: CONSUMER_KEY,
  17. consumer_secret: CONSUMER_SECRET,
  18. access_token: ACCESS_TOKEN,
  19. access_token_secret: ACCESS_TOKEN_SECRET,
  20. timeout_ms: 60*1000
  21. };
  22.  
  23. let api = new Twit(config_twitter);
  24.  
  25. function get_text(tweet) {
  26. let txt = tweet.retweeted_status ? tweet.retweeted_status.full_text : tweet.full_text;
  27. return txt.split(/ |\n/).filter(v => !v.startsWith('http')).join(' ');
  28. }
  29.  
  30. async function get_tweets(q, count) {
  31. let tweets = await api.get('search/tweets', {q, count, 'tweet_mode': 'extended'});
  32. return tweets.data.statuses.map(get_text);
  33. }
  34.  
  35. async function main() {
  36. let keyword = 'avengers';
  37. let count = 100;
  38. let tweets = await get_tweets(keyword, count);
  39. for (tweet of tweets) {
  40. let score = sentiment(tweet).comparative;
  41. tweet = `${tweet}\n`;
  42. if (score > 0) {
  43. tweet = colors.green(tweet);
  44. } else if (score < 0) {
  45. tweet = colors.red(tweet);
  46. } else {
  47. tweet = colors.blue(tweet)
  48. }
  49. console.log(tweet)
  50. }
  51. }
  52.  
  53. main(); 
責任編輯:龐桂玉 來源: Linux中國
相關推薦

2016-12-07 14:23:48

KNIME數據分析情感分析

2016-12-07 14:56:51

KNIME數據分析

2016-12-07 14:45:25

KNIME情感分析數據分析

2019-05-14 10:37:26

Python機器學習編程語言

2016-11-16 15:05:42

情感分析

2020-07-23 09:15:25

Python機器學習聚類分析

2017-10-10 13:13:48

2017-05-25 08:29:30

文本挖掘技術

2017-04-19 12:05:59

2018-01-04 13:07:43

Python機器學習情感分析

2011-04-14 09:05:07

ExcelMySQL數據

2016-08-18 00:35:39

Pythonwitte數據采集

2012-08-30 14:33:03

Spark

2017-10-10 15:42:56

Python鹿晗關曉彤

2010-05-17 16:25:05

MySQL數據

2011-04-06 11:36:28

MRTG流量

2011-10-14 14:24:26

Ruby

2017-03-21 10:55:22

大數據

2023-02-03 11:40:49

機器學習分析情感

2022-12-27 08:00:00

開發機器學習數據集
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色资源在线 | 久久综合久久自在自线精品自 | 国产综合精品 | 在线视频91 | www.伊人.com | 久久久久久久久久久爱 | 黄片毛片免费看 | 免费视频二区 | 亚洲天堂中文字幕 | 中文视频在线 | 精品三级在线观看 | 99re热这里只有精品视频 | 久久久久久免费精品一区二区三区 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 久久久久久精 | 一区二区三区四区av | 亚州无限乱码 | 欧美日韩精品区 | 丁香久久 | 在线观看特色大片免费网站 | 国产玖玖 | 91中文字幕在线 | 久久一日本道色综合久久 | 精品粉嫩aⅴ一区二区三区四区 | 欧州一区二区 | 成人免费网站在线 | 51ⅴ精品国产91久久久久久 | 一二区成人影院电影网 | 人人人人干 | 玖玖久久| 日韩成人免费 | 日日干日日射 | 国产欧美视频一区二区 | 亚洲一区 中文字幕 | 中文字幕在线一区二区三区 | 日韩成人在线网址 | 国产美女视频黄a视频免费 国产精品福利视频 | 精品1区| 天堂va在线 | 亚洲精品久久久一区二区三区 | 日韩伦理一区二区 |