需求分析的方法有哪些(关于情感分析的文章)



需求分析的方法有哪些(关于情感分析的文章)

文章插图
动机:作为我为了更好地理解NLP的个人旅程的一部分,我决定从头开始构建一个Twitter scroller。我相信这样的项目可能在不同领域有很大帮助 。

NLP是什么?自然语言处理(NLP)指的是我们人类相互交流的方式 。即语音和文本 。是计算机分析、理解和产生人类语言(包括语音)能力 。NLP是计算机程序在口头或书面上理解人类语言的能力 。NLP是人工智能(AI)的一个组成部分,许多研究都是为了让这些工具以正常的方式与人类交流 。


需求分析的方法有哪些(关于情感分析的文章)

文章插图
NLP有用的领域:
  • 企业搜索是组织内有组织和非结构化数据的有组织检索 。
  • 解释自由文本并使其可分析存储在自由文本文件中的大量信息 。例如,患者的医疗记录 。
  • 观点挖掘是一种NLP,用来跟踪公众对某一特定产品的情感并找出市场的正确位置 。
什么是NLP工具?既然NLP是人工智能中的一个大领域,那么发现这么多API和这么多文章就不足为奇了 。

这就是为什么我只选择了这些流行库,它们可以处理各种各样的任务,比如词性标注、情感分析、文档分类、主题建模等等 。

  • NLTK:这是最着名的Python NLP库,它带来了该领域令人难以置信的突破 。NLTK也很受教育和研究的欢迎 。NLTK拥有超过50个语料库和词典,9个词干分析器和数十种算法可供选择 。然而,这也是NLTK的主要缺点之一 。它很沉重,并且学习曲线陡峭 。第二个主要缺点是它很慢而且没有生产准备就绪 。
  • TextBlob:TextBlob通过为NLTK提供直观的界面,使文本处理变得简单 。这是一个非常可靠的Python NLP库阵容的一个受欢迎的补充,因为它具有温和的学习曲线,同时拥有惊人的功能 。这就是为什么我在我的项目中选择了这个库 。


需求分析的方法有哪些(关于情感分析的文章)

文章插图
TextBLob Sentiment Analysis

  • spaCy:因为它是基于Cython构建的,所以它也是闪电般快速的 。人们称spaCy为“最先进的” 。它的主要弱点是它目前只支持英语 。
应用程序示例引入的应用程序将分三个阶段完成:

  • 收集数据:使用Twitter API获取有关特定搜索词的推文列表
from tweepy import Stream

from tweepy import OAuthHandler

import tweepy

from tweepy.streaming import StreamListener

consumer_key=""

consumer_secret=""

access_token=""

access_secret=""

auth = OAuthHandler(consumer_key, consumer_secret)

auth.set_access_token(access_token, access_secret)

api = tweepy.API(auth)

#Get a list of tweets:

public_tweets = api.search(query)

  • 清理数据:由于数据是以原始状态收集的,我们需要将它们以某种格式开始进行情绪分析; 为此,我们必须引入一些变化:
import re

pattern1 = re.compile('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')

pattern2 = re.compile('RT @:?(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')

#Foreach Element we should introduce our cleaning Process

for tweet in public_tweets:

tweet.text = pattern1.sub('', tweet.text)

tweet.text = pattern2.sub('', tweet.text)

str(tweet.text)

  • 现在,我们准备提取并应用情绪分析算法:事实上,TextBlob将提供我们列表中每个tweet的极性和主观性 。
完整python代码
from tweepy import Stream

from tweepy import OAuthHandler

import tweepy

from tweepy.streaming import StreamListener

from textblob import TextBlob

import pandas as pd

import re

consumer_key=""

consumer_secret=""

access_token=""

access_secret=""

auth = OAuthHandler(consumer_key, consumer_secret)

auth.set_access_token(access_token, access_secret)

api = tweepy.API(auth)

pd = pd.DataFrame( columns=('Tweets', 'Polarity', 'Subjectivity'))

def CollectingTweets(query):

public_tweets = api.search(query)

tw = []

pl = []

su = []

pattern1 = re.compile('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')

pattern2 = re.compile('RT @:?(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')

for tweet in public_tweets:

tweet.text = pattern1.sub('', tweet.text)

tweet.text = pattern2.sub('', tweet.text)

str(tweet.text)

sent = TextBlob(tweet.text)

tw.append(tweet.text)

pl.append(sent.sentiment.polarity)

su.append(sent.sentiment.subjectivity)

pd['Tweets'] = tw

pd['Polarity'] = pl

pd['Subjectivity'] = su

return pd

def GetPolarityMean():

return pd['Polarity'].mean()

def GetSubjectivityMean():

return pd['Subjectivity'].mean()

def GetPolarityCount():

return pd[pd['Polarity']<=0].count().Polarity

def GetSubjectivityCount():

return pd[pd['Subjectivity']<=0].count().Subjectivity
【需求分析的方法有哪些(关于情感分析的文章)】
def GetTweetCount():

return pd.count().Tweets

结果:NLP是人工智能的一个非常有前途的领域,但具有挑战性,但将为人类带来一个新的时代 。