Latent Dirichlet Allocation(LDA)是一个主题模型,用于查找一堆文档的潜在变量(主题).我正在使用python gensim包,有两个问题:
--- 1,我打印出每个主题最常用的单词(我试过10,20,50个主题),发现单词的分布非常"平淡":意思是即使是最常用的单词也只有1%可能性...
--- 2,大多数主题都是相似的:意味着每个主题的最常用单词重叠很多,主题分享几乎相同的高频词组...
我想问题可能是由于我的文档:我的文档实际上属于特定类别,例如,它们都是介绍不同在线游戏的文档.对于我的情况,LDA是否仍然有效,因为文件本身非常相似,所以基于"词袋"的模型可能不是一个好的尝试方法?
有人能给我一些建议吗?谢谢!
我正在使用python调用Last.fm API来获取用户信息.获取大约7000个用户后会发生此错误:
Traceback (most recent call last):
File "C:/Python27/My Codes & Data/scanuserinfo_100K_3.py", line 48, in <module>
r=requests.get(host,params=params)
File "C:\Python27\requests\api.py", line 60, in get
return request('get', url, **kwargs)
File "C:\Python27\requests\api.py", line 49, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python27\requests\sessions.py", line 457, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python27\requests\sessions.py", line 569, in send
r = adapter.send(request, **kwargs)
File "C:\Python27\requests\adapters.py", line 407, in send
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', BadStatusLine("''",))
Run Code Online (Sandbox Code Playgroud)
这是我调用API的代码:
import requests
API_KEY='####my api key input here#####'
host='http://ws.audioscrobbler.com/2.0/'
params={'method':'user.getInfo', …
Run Code Online (Sandbox Code Playgroud) 有一些标准的停用词列表,给出了要从语料库中删除的诸如“a the of not”之类的词。但是,我想知道,停止列表是否应该逐案更改?
比如我有10K的期刊文章,那么由于文章的结构,基本上每篇文章都会看到“介绍、评论、结论、页面”这样的词。我担心的是:我们应该从我们的语料库中删除这些词吗?(每个文档都有的词?)感谢每一个评论和建议。
我有一个函数将根据函数中的 if 语句返回不同的值。返回的值将添加到现有列表中。但是,在函数中有一种情况,我希望函数什么都不做,即,现有列表将保持不变,就好像没有调用任何函数一样。目前我正在做的是以下,但我觉得这看起来很乱,想知道是否有更好的方法:
import requests
def myfun(url):
response=requests.get(url)
code=response.status_code
if code==503:
time.sleep(3*random.random())
value=None
else:
html=response.content()
value=html['some tag']
return (value,code)
lists=[]
for url in [my url pool]:
(value,code)=myfun(url)
lists.append(value)
if code==503:
lists.pop()
Run Code Online (Sandbox Code Playgroud)
所以基本上我所做的是不断访问某个网页,读取一些值,然后将这些值放入一个不断增长的列表中。但是,有时我被阻止(其中给出了错误代码 503),然后我希望我的代码休眠一段时间然后继续前进。如果我收到 503 错误代码,则不会返回任何内容,因此不断增长的列表将相同。但是我不知道在调用函数时如何指定这种情况,所以我只是将返回的值设置为 None(或者可以是任何值),然后将它们添加到列表中,然后立即将它们从列表中删除。(所以我使用 append() 然后 pop() 如果代码是 503)