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的显式方法.
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类标签之间.
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?
请帮忙。
谢谢。
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)
请帮忙.