python查找单词的位置_Python – 从一行中的给定点查找前后五个单词的最佳代码...

我正在尝试编写代码来查找特定短语两侧的5个单词.很容易,但我必须在大量数据上执行此操作,因此代码需要是最佳的!

for file in listing:

file2 = open('//home/user/Documents/Corpus/Files/'+file,'r')

for line in file2:

linetrigrams = trigram_split(line)

for trigram in linetrigrams:

if trigram in trigrams:

line2 = line.replace(trigram,'###').split('###')

window = (line2[0].split()[-5:] + line2[1].split()[:5])

for item in window:

if item in mostfreq:

matrix[trigram][mostfreq[item]] += 1

有什么建议可以更快地做到这一点?可能是我在这里使用完全错误的数据结构. trigram_split()只给出行中的所有三元组(这是我需要为其创建向量的单位). “Trigrams”基本上是一个大约一百万个三元组的列表,我关注的是创建向量. Window获取trigram之前和之后的5个单词(如果该trigram在列表中),然后检查它们是否在列表MostFreq(这是一个1000字的字典作为键,每个对应一个整数[ 0-100]作为储值).然后,这用于更新Matrix(这是一个带有列表([0] * 1000)作为存储值的字典).伪矩阵中的对应值以这种方式递增.

最佳答案 在权衡各种方法时要考虑的几个重要因素:

>多线与单线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值