在NLTK中过滤数据

2024-05-13 20:46:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在NLTK文档之后,这里:http://www.nltk.org/howto/twitter.html#Extracting-Parts-of-a-Tweet

我试图通过boolean标记retweetedpossibly_sensitive状态过滤tweet。下面的示例只尝试使用retweeted标记。在

输出仅包含以下内容"id,text,retweeted.bool"

input_file = "/blah/blah/blah/tweets.20171120-202012.json"
from nltk.twitter.common import json2csv_entities
with open(input_file) as fp:
    json2csv_entities(fp, 'tweets.20171120-202012.csv', 
                        ['id', 'text'], 'retweeted',['bool'])

json文件是一个换行分隔的json文件,其中有许多tweet对象(这些对象各不相同——有些tweet对象没有possibly_sensitive标记,只有当tweet有链接时才会显示)。我怀疑这可能是造成这个问题的原因。在

关于如何让这个json2csv_entities方法来拉入retweeted和{}标记,有什么想法吗?在

提前感谢您的想法!在

输入文件的示例不适合在这里发布,因为它太长了,但从结构上看,它看起来像下面这样:

^{pr2}$

Tags: 文件对象标记idjson示例twittertweet
1条回答
网友
1楼 · 发布于 2024-05-13 20:46:04

{JSON文件中的每一行{JSON>以一行字符串的形式读取(在文件的第1行中用一个字符串分隔)。在

然后我编写了以下代码来获取我要查找的键:

with open(input_file) as tweets_file:
    for line in tweets_file:
        tweet = json.loads(line)
        # try catch handles for possibly_sensitive not being in the tweet metadata..
        try:
            sensitive = tweet['possibly_sensitive']
        except KeyError:
            sensitive = None

这很有效。在

相关问题 更多 >