这是我在stackoverflow上的第一篇文章,我对编码更加新鲜.所以,请耐心等待.
我正在进行一项有两套数据文件的实验.Doc1如下:
TOPIC:topic_0 5892.0
site 0.0371690427699
Internet 0.0261371350984
online 0.0229124236253
web 0.0218940936864
say 0.0159538357094
image 0.015105227427
TOPIC:topic_1 12366.0
Mr 0.150331554262
s 0.0517548115801
say 0.0451237263464
TOPIC:topic_2 ....
.....
.....
TOPIC:topic_3 1066.0
say 0.062
word 0.182
Run Code Online (Sandbox Code Playgroud)
等等100个主题.
在本文档中,有些词语出现在所有主题中或仅存在于少数主题中.所以,我想执行一个过程,如果一个主题中没有一个单词,我希望该主题中的单词的值为0.这就是主题2中出现的BBC这个词,但是不存在主题1,所以我希望我的列表为:
TOPIC:topic_0 5892.0
site 0.0371690427699
Internet 0.0261371350984
online 0.0229124236253
web 0.0218940936864
say 0.0159538357094
image 0.015105227427
Mr 0
s 0
president 0
tell 0
BBC 0
TOPIC:topic_1 12366.0
Mr 0.150331554262
s 0.0517548115801
say 0.0451237263464
president 0.0153647096879
tell 0.0135856380398
BBC 0.0135856380398
site 0
Internet 0
online 0 …Run Code Online (Sandbox Code Playgroud) 我试图计算我所拥有的数据的困惑.我使用的代码是:
import sys
sys.path.append("/usr/local/anaconda/lib/python2.7/site-packages/nltk")
from nltk.corpus import brown
from nltk.model import NgramModel
from nltk.probability import LidstoneProbDist, WittenBellProbDist
estimator = lambda fdist, bins: LidstoneProbDist(fdist, 0.2)
lm = NgramModel(3, brown.words(categories='news'), True, False, estimator)
print lm
Run Code Online (Sandbox Code Playgroud)
但我收到错误,
File "/usr/local/anaconda/lib/python2.7/site-packages/nltk/model/ngram.py", line 107, in __init__
cfd[context][token] += 1
TypeError: 'int' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)
我已经为我的数据执行了潜在Dirichlet分配,并且我已经生成了unigrams及其各自的概率(它们被归一化为数据的总概率之和为1).
我的unigrams和他们的概率看起来像:
Negroponte 1.22948976891e-05
Andreas 7.11290670484e-07
Rheinberg 7.08255885794e-07
Joji 4.48481435106e-07
Helguson 1.89936727391e-07
CAPTION_spot 2.37395965468e-06
Mortimer 1.48540253778e-07
yellow 1.26582575863e-05
Sugar 1.49563800878e-06
four 0.000207196011781
Run Code Online (Sandbox Code Playgroud)
这只是我所拥有的unigrams文件的一个片段.对于大约1000行,遵循相同的格式.总概率(第二列)求和1.
我是一个崭露头角的程序员.这个ngram.py属于nltk包,我很困惑如何纠正这个问题.我这里的示例代码来自nltk文档,我现在不知道该怎么做.请帮忙我能做些什么.提前致谢!
我正在处理乳胶文件。我的包裹是
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{color}
\usepackage{ragged2e}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage}
\setcounter{tocdepth}{6}
\setcounter{secnumdepth}{6}
Run Code Online (Sandbox Code Playgroud)
一切都很好,但是当第一小节完成并且我使用了下一小节命令时\section{blah blah},它将在新页面上开始。我在同一页面上有足够的空间,因此我不希望分页。我什至使用过\nopagebreak命令,而且仍然相同。请帮忙!