- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要组织文本方面的帮助。我有 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/
C 中的字符串或字符数组必须以空字符结尾才能知道它们在哪里结束。为什么相同的规则不适用于其他类型的数组? 例如。计算机如何知道整数数组在哪里结束?整数/浮点数/ double 数组在内存中的表示方式有
我有一堆文件需要查看。这些文件中的所有行都以 ^M (\x0D) 结尾,但最后一行以 ^M^J (\x0D\x0A) 结尾。 显然,Vim 将文件类型确定为 DOS,效果是文件的整个内容是 显示在一行
以下是来自 Why's Poignant Guide to Ruby Chapter 6 的 Ruby 代码片段,他试图在 Ruby 中演示元编程: # Get a metaclass for thi
我有一个编程问题,希望有人能帮我解决。我正在尝试为一项工作任务学习 C 编程,我为自己设定了一个小项目,其中包括读取文件树,其中包括获取有关每个文件的信息的所有子目录。 我遇到的问题是我的程序不会忽略
其他章节请看: react 高效高质量搭建后台系统 系列 尾篇 本篇主要介绍 表单查询 、 表单验证 、 通知 (WebSocket)、 自动构建
我是 FFmepg 的新手,所以如果术语有误,请原谅我。 我想将文本和音频添加到现有的视频文件中。我链接在一起 2 drawText s,然后在不同的过滤器中,我想合并原始源视频的音轨和一些背景音乐。
使用grep我可以使用以下命令搜索单词的开头和结尾 grep -e '\' 这将找到I have a leg.,但找不到play allegro here。 Ripgrep(0.10.0)似乎不支持
$.ajax({ type:'GET', cache: 'false', url:"/foo/", data:{"id": pid}, success:func
我想在我的 iPhone 应用程序中处理旋转手势并在此期间旋转 imageView。在手势结束时,我想将 imageView 旋转到固定位置。所以,即。如果我将 imageView 从 0 弧度旋转到
我知道检测是一种将跟踪代码动态添加到方法中以启用跟踪和调试的技术。 我想知道这是否只是一个“跟踪”选项,硬编码到 CLR 中以仅添加跟踪代码,或者是否能够向方法添加任何代码? 例如,我想检查某个类中每
我正在查看一些专有源代码:使用库的示例程序。 代码是用 C 和 C++ 编写的,使用 make 构建系统。 每个文件都以注释掉的 [] 结尾:/*[]*/ 源文件和 #[]#对于生成文件。这可能是什么
是否可以循环文件中的每一行并检查它是如何结束的(LF/CRLF): using(StreamReader sr = new StreamReader("TestFile.txt")) { st
我从 JSF 网站的编程开始。目前所有文件都以 .xhtml 结尾。当我去http://localhost:8080/myProject/start.jsf一切正常。但是当我将文件从 start.xh
这是一个多站点问题。我有很多网站都带有.htaccess文件,其中包含多行,类似于: rewriterule ^(page-one|page-two|page-three)/?$ /index.php
真的没有简单的映射来跳转到段落的第一行或最后一行吗? { 和 } 是“独占”命令,因此它们会跳转到段落前后的空行如果有的话,但对于段落的实际第一行或最后一行(即,当段落位于缓冲区的顶部或底部时)。 这
我已经尝试了该站点上所有可能的解决方案。我以前使用过改造,过去已经解决了这个问题,但这次我无法解决。我正在使用 StackOverflow API 来获取问题及其详细信息。 API : https:/
我正在做模式匹配如下。但我没有得到正确的输出。请建议正确的代码以获得正确的输出。 代码 #! /usr/bin/perl -w my $subString = "1.3.6.1.2.1.26.2.1.
如何创建 if 语句以检查整数是否以 0 结尾? 例如,我想要一个这样的 if 语句: var test = 107; //107 is an example it'should some unkno
这个问题已经有答案了: javascript how to tell if one number is a multiple of another (6 个回答) 已关闭 3 年前。 每当秒 var
我正在遍历文件树以识别所有 .DYLIB 文件。 #!/bin/bash #script to recursively travel a dir of n levels function traver
我是一名优秀的程序员,十分优秀!