![](/img/trans.png)
[英]Most efficient way to modify the last line of a large text file in Python
[英]Python - Most efficient way to find how often each possible pair of words occurs in the same line in a text file?
这个特殊的问题很容易解决,但是我不确定要达到的解决方案在计算上是否有效。 所以我要问专家!
遍历大文件并收集有关同一行中两个单词出现频率(针对整个文件)的统计信息的最佳方法是什么?
例如,如果文本仅包含以下两行:
“这是白色的棒球。” “这些家伙有白色的棒球棒。”
您最终将收集以下统计信息:(this,is:1),(this,the:1),(this,white:1),(this,棒球:1),(is,the:1),(是,白色:1),(是,棒球:1)...依此类推。
对于条目(棒球,白色:2),该值为2,因为这对单词在同一行中总共出现2次。
理想情况下,应该将统计信息放在字典中,在该字典中,键在元组级别按字母顺序排列(即,您不需要“ this,is”和“ is,this”的单独条目。我们不在乎顺序。此处:我们只想查找每个可能的单词对在整个文本的同一行中出现的频率。
from collections import defaultdict
import itertools as it
import re
pairs = defaultdict(int)
for line in lines:
for pair in it.combinations(re.findall('\w+', line), 2):
pairs[tuple(pair)] += 1
resultList = [pair + (occurences, ) for pair, occurences in pairs.iterkeys()]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.