You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将错位提取的术语表文本恢复为单词-释义关联的双列格式?

如何将错位提取的术语表文本恢复为单词-释义关联的双列格式?

这种情况真的太常见了!不管是图片转文本还是PDF复制,经常会把原本上下对应的单词和释义拆成两堆,下面给你几个实用的解决方法,GUI和轻量CLI都有:

GUI工具方案

1. LibreOffice Calc(或Microsoft Excel)——最直观的表格法

这应该是最容易上手的方法,不用复杂操作:

  • 第一步:把所有提取的文本(包括单词和释义)全选复制,粘贴到Calc的第一列(A列),确保每个条目单独占一行,比如A1是word1,A2是word2,...,A5是:meaning1,A6是:meaning2以此类推。
  • 第二步:数清楚单词的总数(比如这里是4个),假设总共有N个单词,那么前N行是单词,从第N+1行到第2N行是释义。
  • 第三步:在B1单元格输入公式 =INDIRECT("A"&ROW()+N),比如N=4的话就是=INDIRECT("A"&ROW()+4),然后把这个公式下拉到B4单元格——这样B1就会自动对应A5的:meaning1,B2对应A6的:meaning2,完美匹配!
  • 第四步:选中B列,右键选择「复制」,再右键选「粘贴为值」(避免公式失效),之后删除A列从第N+1行开始的释义内容。如果想要合并成一列的格式,还可以在C1输入=A1&" "&B1,下拉后复制C列的内容就是你要的word1 :meaning1格式了。

2. Notepad++——文本编辑控的首选

如果你习惯用文本编辑器,Notepad++的列编辑功能能快速搞定:

  • 第一步:把所有文本粘贴到Notepad++中,确保每个单词和释义各占一行。
  • 第二步:数出单词的数量N,找到第N+1行(也就是第一个释义行),按住Alt键(列选择模式),从该行行首拖动鼠标,选中所有N个释义行的完整内容。
  • 第三步:剪切选中的释义内容,然后把光标移到第一个单词行的末尾,按一下Tab或者空格留出间隔,接着按住Alt键,把光标依次放在每个单词行的末尾,形成一个列选择区域,最后粘贴刚才剪切的释义——这样每个释义就会对应到单词的右侧了。

轻量CLI方案(awk命令)

如果你能接受简单的命令行,awk一行代码就能自动完成匹配,Linux/macOS自带awk,Windows可以用Git Bash或者WSL:

  1. 先把提取的文本保存为glossary.txt文件。
  2. 打开终端,先计算单词数量(总行数的一半):
    n=$(($(wc -l < glossary.txt)/2))
    
  3. 然后执行匹配命令:
    awk -v num=$n 'NR<=num {words[NR]=$0} NR>num {print words[NR-num] "      " $0}' glossary.txt
    
    这个命令会自动把前N行的单词存入数组,后面的N行依次对应到前面的单词,输出就是你要的word :meaning格式,还可以把结果保存到新文件:
    awk -v num=$n 'NR<=num {words[NR]=$0} NR>num {print words[NR-num] "      " $0}' glossary.txt > fixed_glossary.txt
    

备注:内容来源于stack exchange,提问作者Kris

火山引擎 最新活动