gpt4 book ai didi

python - 在每隔一行的开头和结尾添加引号,忽略空行

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

我需要组织文本方面的帮助。我有 csv 中数千个词汇的列表。每个单词都有术语、定义和例句。术语和定义由制表符分隔,例句由空行分隔。

例如:

exacerbate  worsen

This attack will exacerbate the already tense relations between the two communities

exasperate irritate, vex

he often exasperates his mother with pranks

execrable very bad, abominable, utterly detestable

an execrable performance

我想这样组织这个例句,使例句用双引号括起来,前后没有空行,并且句子中的术语由连字符替换。所有这些都发生了变化,同时保留术语后面的制表符、每个术语开头的新行以及定义和例句之间的唯一空格。我需要这种格式将其导入抽认卡 Web 应用程序。

使用上述示例的期望结果:

exacerbate  worsen "This attack will – the already tense relations between the two communities"
exasperate irritate, vex "he often – his mother with pranks"
execrable very bad, abominable, utterly detestable "an – performance"

我使用的是 Mac。我知道基本的命令行(包括正则表达式)和Python,但不足以自己解决这个问题。如果您能帮助我,我将非常感激。

最佳答案

将终端打开到包含输入文件的目录。将以下代码保存在 .py 文件中:

import sys
import string
import difflib
import itertools


with open(sys.argv[1]) as fobj:
lines = fobj.read().split('\n\n')

with open(sys.argv[2], 'w') as out:
for i in range(0, len(lines), 2):
line1, example = lines[i:i + 2]
words = [w.strip(string.punctuation).lower()
for w in example.split()]

# if the target word is not in the example sentence,
# we will find the most similar one
target = line1.split('\t')[0]
if target in words:
most_similar = target
else:
most_similar = difflib.get_close_matches(target, words, 1)[0]
new_example = example.replace(most_similar, '-')
out.write('{} "{}"\n'.format(line1.strip(), new_example.strip()))

程序需要输入文件名和输出文件名作为命令行参数。即从终端执行以下命令:

$ python program.py input.txt output.txt

其中 program.py 是上面的程序,input.txt 是您的输入文件,output.txt 是将使用您需要的格式创建。

<小时/>

我根据您提供的示例运行了该程序。我手动添加了选项卡,因为问题中只有空格。这是程序产生的输出:

exacerbate  worsen "This attack will - the already tense relations between the two communities"
exasperate irritate, vex "he often - his mother with pranks"
execrable very bad, abominable, utterly detestable "an - performance"

在第二个示例中,程序正确地用破折号替换了 exacerbates,即使单词是 exacerbate。如果没有文件,我无法保证此技术适用于文件中的每个单词。

关于python - 在每隔一行的开头和结尾添加引号,忽略空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060461/

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