我有一些字幕文件,我不打算学习这些字幕中的每一个单词,没有必要学习一些硬词,如:锁骨颅骨,发育不良
我在这里找到了这个脚本:Remove words from a cell that aren't in a list。但我不知道如何修改或运行它。(我正在使用linux)
下面是我们的示例:
字幕文件(.srt):
2
00:00:13,000 --> 00:00:15,000
People with cleidocranial dysplasia are good.
3000个常用词的词表(.txt):
...
people
with
are
good
...
我们需要的输出(.srt):
2
00:00:13,000 --> 00:00:15,000
People with * * are good.
或者如果可能的话标记它们(.srt):
2
00:00:13,000 --> 00:00:15,000
People with cleidocranial* dysplasia* are good.
如果有一个解决方案只处理纯文本(没有时间码),那没关系,只需解释如何运行它
多谢各位
以下仅处理每个
'.srt'
文件的第3行。它可以很容易地适应处理其他行和/或其他文件结果(对于您作为示例给出的
subtitle.rst
):备选方案:只需在词汇表外的单词旁边添加一个
'*'
:然后输出为:
说明:
open
用于读入所有想要的单词,确保它们是小写的,并将它们放入set
(用于快速成员资格测试)glob
查找以'.srt'
结尾的所有文件名'..._new.srt'
i == 2
(即第三行,因为默认情况下enumerate
从0开始)line.strip()
删除尾随的换行符line.strip().split()
将行拆分为单词,但它会将'good.'
作为最后一个单词;不太好。使用的正则表达式通常用于拆分单词(特别是,它在单引号中留下如"don't"
;它可能是您想要的,也可能不是您想要的,当然可以随意调整)r"([\w']+)"
而不是对非单词字符进行拆分,这样我们就有了两个单词以及在parts
中分隔它们的内容。例如,'People, who are good.'
变成了['', 'People', ', ', 'who', ' ', 'are', ' ', 'good', '.']
parts
的每一个其他元素,从索引1开始'*'
您可以简单地运行以下python脚本:
这个脚本将用修改的
*word*
替换公共单词文件中不存在的每个单词,保留原始文件并将所有内容放入新的输出文件中相关问题 更多 >
编程相关推荐