小编kes*_*106的帖子

Python - 使用Pointwise互信息的情感分析

from __future__ import division
import urllib
import json
from math import log


def hits(word1,word2=""):
    query = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%s"
    if word2 == "":
        results = urllib.urlopen(query % word1)
    else:
        results = urllib.urlopen(query % word1+" "+"AROUND(10)"+" "+word2)
    json_res = json.loads(results.read())
    google_hits=int(json_res['responseData']['cursor']['estimatedResultCount'])
    return google_hits


def so(phrase):
    num = hits(phrase,"excellent")
    #print num
    den = hits(phrase,"poor")
    #print den
    ratio = num / den
    #print ratio
    sop = log(ratio)
    return sop

print so("ugly product")
Run Code Online (Sandbox Code Playgroud)

我需要此代码来计算Point wise Mutual Information,它可用于将评论分类为正面或负面.基本上我使用Turney(2002)指定的技术:http://acl.ldc.upenn.edu/P/P02/P02-1053.pdf作为用于情感分析的无监督分类方法的示例.

正如文中所解释的,如果短语与"差"这个词更强烈地联系在一起,则短语的语义方向是否定的,如果与"优秀"这个词更强烈地联系在一起则是肯定的.

上面的代码计算短语的SO.我使用谷歌计算命中数并计算SO.(因为AltaVista现在不存在)

计算出的值非常不稳定.他们没有坚持特定的模式.例如,SO("丑陋产品")为2.85462098541,而SO("美丽产品")为1.71395061117.虽然前者预计是负面而另一个是积极的.

代码有问题吗?是否有更简单的方法来计算任何Python库(如NLTK)的短语(使用PMI)的SO?我试过NLTK但是却找不到任何计算PMI的显式方法.

python nlp nltk sentiment-analysis

11
推荐指数
2
解决办法
1万
查看次数

Python:BeautifulSoup通过其类提取div标签之间的字符串

import urllib, urllib2
from bs4 import BeautifulSoup, Comment
url='http://www.amazon.in/product-reviews/B00CE2LUKQ/ref=cm_cr_pr_top_link_1?ie=UTF8&showViewpoints=0&sortBy=bySubmissionDateDescending'
content = urllib2.urlopen(url).read()
soup = BeautifulSoup(content, "html.parser")
rows =soup.find_all('div',attrs={"class" : "reviewText"})
print rows
Run Code Online (Sandbox Code Playgroud)

此代码用于从网站提取评论.我需要文本 - 但我用div标签得到它们.

关于如何单独提取文本,我需要帮助.我需要单独的文本 - 在div类标签之间.

python beautifulsoup

6
推荐指数
1
解决办法
2万
查看次数

Python-如何从tkinter小部件获取值并将其分配给变量

from tkinter import *
import tkinter as tk
import pyodbc

root1 = tk.Tk()

label1 = tk.Label(root1, text='product A')
entry1 = tk.Entry(root1)

label1.pack(side = tk.TOP)
entry1.pack()
input1= StringVar()
input1.set(entry1.get())
print (input1)
Run Code Online (Sandbox Code Playgroud)

此代码用于将输入文本框小部件中的值分配给变量Input1。但是,我得到的值是:PY_VAR0,而不是Entry1中的文本。

我需要打印输入文本。为什么会出现PY_VAR0?

请帮忙。

谢谢。

python tkinter

3
推荐指数
1
解决办法
9794
查看次数

Python-如何解决TypeError

 import urllib, urllib2
 from bs4 import BeautifulSoup, Comment
 url='http://www.amazon.in/product-reviews/B00EJBA7HC/ref=cm_cr_pr_top_link_1?ie=UTF8&pageNumber=1&showViewpoints=0&sortBy=bySubmissionDateDescending'
 content = urllib2.urlopen(url).read()
 soup = BeautifulSoup(content, "html.parser")
 fooId = soup.find('input',name='ASIN',type='hidden') #Find the proper tag
 value = fooId['value']
 print value
Run Code Online (Sandbox Code Playgroud)

我需要此代码从给定的URL打印产品的ASIN ID.

相反,我收到以下错误:

TypeError: find() got multiple values for keyword argument 'name'
Run Code Online (Sandbox Code Playgroud)

请帮忙.

python screen-scraping beautifulsoup python-2.7

0
推荐指数
1
解决办法
660
查看次数