gpt4 book ai didi

python - 从 NLTK 中的 token 中删除 URL 特征

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:04 24 4
gpt4 key购买 nike

我正在构建一个小的“趋势”算法。标记器按照最初的预期工作,除了 URL 周围的一些小问题之外,这些问题会导致一些问题。

显然,当我从 Twitter 获取信息时,有很多 t.co URL 缩短类型链接。我想将它们作为非“单词”删除,最好是在标记器阶段,但目前我正在事后将它们过滤掉。我不能(我不认为)针对可识别的英语白名单运行 token ,就像 Twitter 和缩写等一样。

我的代码包含了在任何给定时间段内提取前 10 个最常见单词的函数:

tweets = Tweet.objects.filter(lang='en', created_at__gte=start, created_at__lte=end)
number_of_tweets = tweets.count()
most_popular = trending.run_all(start, end, "word").keys()[:10]
print "BEFORE", most_popular
for i, thing in enumerate(most_popular):
try:
if "/" in thing:
most_popular.remove(thing)
print i, thing, "Removed it."
except UnicodeEncodeError, e:
print "Unicode error", e
most_popular.remove(thing)
print "NOW", most_popular`

理论上,该 try/except block 应该从标记列表中删除任何 URL 特色单词 - 但事实并非如此,我总是留下几个。

在某个时间段上运行 trending.run_all 给出,例如:

[u'//t.co/r6gkL104ai/nKate',
你“解释一下”,
u'\U0001f62b\U0001f62d/nRT',
你“树林”,
你'挂',
u'ndtv/nRT',
u'本·多尔蒂·科罗',
u'\u0928\u093f\u0930\u094d\u0926\u094b\u0937_\u092c\u093e\u092a\u0942\u2026/n警察',
你'最后',
u'health/nTime']

运行导入到 python 命令行中的其余代码会给出:

0 //t.co/r6gkL104ai/nKate Removed it
1 😫😭/nRT Removed it
2 hanging
3 ndtv/nRT Removed it
4 निर्दोष_बापू…/nPolice Removed it
5 health/nTime Removed it
6 Western 7 //t.co/4dhGoBpzR0 Removed it
8 //t.co/TkHhI7n…/nRT Removed it
9 //t.co/WmWkcG1dOz/nRT Removed it
10 bringing
...
32 kids

NOW [u'EXPLAIN', u'woods', u'hanging', u'BenDohertyCorro', u'LAST', u'scolo', u'Western', u'//t.co/jB0TWYAJSI/nMe', u'BREAKINGNEWS', u'//t.co/9gYG8y5OKK', u'bringing', u'Valls', u'advices', u'Signatures', u'//t.co/vmQfyenXp4/nJury', u'strengthandcondition\u2026', u'HAPPENED', u'\u2705', u'\U0001f60f', u'//t.co/5JR8RXsJ87/nIs', u'Hamilton', u'Logging', u'Happening', u'Foundation', u'//t.co/gC959Q43QD/nRT', u'ISIS=CIA', u'Footnotes', u'ARYNEWSOFFICIAL', u'LoveMyLife', u'-they', u'B\xf6rse', u'InfoTerrorism', u'kids']

因此,出于某种原因,那个小家伙并没有(始终)将它们排除在外,或者没有按预期行事。这会导致 Django 中反向查找的一个特殊问题,因为我打算使用一段时间内的前 X 个短语作为可点击的链接 - 显然这完全破坏了查找,并且(正确地)似乎没有办法排除模板中的内容,所以我宁愿在 View 中处理它。

最佳答案

在我看来,您遇到的问题是您在迭代列表时删除了列表。解决方案很简单:您应该迭代列表的副本:

for i, thing in enumerate(most_popular[:]):

请注意“[:]”,它将创建您的列表的副本。

此行为的原因可以在 post 中找到.

关于python - 从 NLTK 中的 token 中删除 URL 特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30686691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com