相关疑难解决方法(0)

将Counter对象转换为Pandas DataFrame

Counter在列表上用来计算这个变量:

final = Counter(event_container)
Run Code Online (Sandbox Code Playgroud)

打印最终给出:

Counter({'fb_view_listing': 76, 'fb_homescreen': 63, 'rt_view_listing': 50, 'rt_home_start_app': 46, 'fb_view_wishlist': 39, 'fb_view_product': 37, 'fb_search': 29, 'rt_view_product': 23, 'fb_view_cart': 22, 'rt_search': 12, 'rt_view_cart': 12, 'add_to_cart': 2, 'create_campaign': 1, 'fb_connect': 1, 'sale': 1, 'guest_sale': 1, 'remove_from_cart': 1, 'rt_transaction_confirmation': 1, 'login': 1})
Run Code Online (Sandbox Code Playgroud)

现在我想转换final成熊猫DataFrame,但是当我做的时候:

final_df = pd.DataFrame(final)
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误.

我猜最终不是一个合适的字典,所以如何转换final为字典?或者它是另一种转换finalDataFrame?的方式?

python counter dataframe pandas

35
推荐指数
3
解决办法
2万
查看次数

Python:如何计算NLTK语料库中最常用的X词?

我不确定我是否已正确理解FreqDist函数如何在Python上运行.当我按照教程进行操作时,我会相信以下代码构造给定单词列表的频率分布并计算最常用的x个单词.(在下面的示例中,将语料库设为NLTK语料库,将文件作为该语料库中文件的文件名)

words = corpus.words('file.txt')
fd_words = nltk.FreqDist(word.lower() for word in words)
fd_words.items()[:x]
Run Code Online (Sandbox Code Playgroud)

但是,当我在Python上执行以下命令时,它似乎暗示:

>>> from nltk import *
>>> fdist = FreqDist(['hi','my','name','is','my','name'])
>>> fdist
FreqDist({'my': 2, 'name':2, 'is':1, 'hi':1}
>>> fdist.items()
[('is',1),('hi',1),('my',2),('name',2)]
>>> fdist.items[:2]
[('is',1),('hi',1)]
Run Code Online (Sandbox Code Playgroud)

fdist.items()[:x]方法实际上是返回x个最不常见的单词?

有人能告诉我,如果我做错了什么或错误在于我正在遵循的教程吗?

python nltk

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

如何从Python中的双/三元组的输出中删除列表特殊字符(“()”,“'”,“,”)

我编写了一个使用 NLTK 从文本输入计算二元/三元频率的代码。我在这里面临的问题是,由于输出是以Python列表的形式获得的,所以我的输出包含列表特定字符,即(“()”,“'”,“,”)。我计划将其导出到 csv 文件中,因此我想在代码级别本身删除这些特殊字符。我怎样才能进行编辑。

输入代码:

import nltk
from nltk import word_tokenize, pos_tag
from nltk.collocations import *
from itertools import *
from nltk.util import ngrams
from nltk.corpus import stopwords

corpus = '''The pure amnesia of her face,
newborn. I looked so far into her that, for a while, looked so far into her that, for a while  looked so far into her that, for a while looked so far into her that, for a while the visual 
held no memory. …
Run Code Online (Sandbox Code Playgroud)

python special-characters nltk

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

合并生成器对象以计算 NLTK 中的频率

我想计数的各种频率ngrams使用ngramfreqDist功能nltk。由于ngram函数输出是一个generator对象,我想在计算频率之前合并每个 ngram 的输出。但是,我遇到了合并各种生成器对象的问题。

我试过itertools.chain,它创建了一个itertools对象,而不是合并生成器。我终于确定了permutations,但之后解析对象似乎是多余的。

到目前为止的工作代码是:

import nltk
from nltk import word_tokenize, pos_tag
from nltk.collocations import *
from itertools import *
from nltk.util import ngrams
import re
corpus = 'testing sentences to see if if if this works'
token = word_tokenize(corpus)
unigrams = ngrams(token,1)
bigrams = ngrams(token,2)
trigrams = ngrams(token,3)


perms = list(permutations([unigrams,bigrams,trigrams]))
fdist = nltk.FreqDist(perms)
for x,y in fdist.items():
    for k in …
Run Code Online (Sandbox Code Playgroud)

generator nltk python-2.7 word-frequency

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

在 NLTK 中使用 get 与 get() 对 FreqDist 进行排序

我正在使用 NLTK 和模块 freqDist

import nltk
from nltk.corpus import gutenberg
print(gutenberg.fileids())
from nltk import FreqDist
fd = FreqDist()

for word in gutenberg.words('austen-persuasion.txt'):
    fd[word] += 1

newfd = sorted(fd, key=fd.get, reverse=True)[:10]
Run Code Online (Sandbox Code Playgroud)

所以我正在使用 NLTK,并且有一个关于排序部分的问题。当我运行这样的代码时,它会正确对 freqDist 对象进行排序。但是,当我使用 get() 而不是 get 运行它时,我遇到了错误

Traceback (most recent call last):
  File "C:\Python34\NLP\NLP.py", line 21, in <module>
newfd = sorted(fd, key=fd.get(), reverse=True)[:10]
TypeError: get expected at least 1 arguments, got 0
Run Code Online (Sandbox Code Playgroud)

为什么 get 是对的而 get() 是错的。我的印象是 get() 应该是正确的,但我想事实并非如此。

python sorting dictionary nlp nltk

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