如何快速提取一篇文章中的重複句段

昨天我收到一位北語高翻畢業生的來信,詢問有關SDL Trados Studio 2017中提取並翻譯重複句段的問題,這讓我萌生了做一個簡單的提取重複句段工具的念頭,實踐之後發現一點都不難。我簡單說一下方法,然後大家就可以自己前往下面的網站去在線體驗了:

提取TMX文件中的重複句段:

http://translation.education/tmxfilter/

提取一篇中文文檔中的重複句段:

http://translation.education/sentencefilter/

提取一篇中文文檔中的重複中文字句:

http://translation.education/senfilter/

正文

以下是使用代碼獲取重複句段的方法:

第一步:獲取待譯文本中的句子

以中文為例,我寫了一段簡單的文本,如下:

如何快速提取一篇文章中的重复句段

這段文本實際上就是幾個簡單句子的重複。

第二步:將上述文本轉換為tmx格式文件

我使用SDL Trados Studio 2017將上述文本轉換為一個tmx格式翻譯記憶庫文件,方便演示其原理,在我最後給大家展示的在線網站中大家直接粘貼原文到網站中即可操作,不必像我這樣弄得這麼麻煩。

我將上述文本轉換為一個.tmx格式的文件後,開始撰寫代碼。

第三步:使用PHP提取重複內容

如何快速提取一篇文章中的重复句段

全部代碼就是上面這樣,實際上只用了11行代碼,而且還可以進一步簡化。每一行代碼的功能我就不解釋了,我就說一下我用到的一個核心函數:array_count_values

w3school是這樣介紹這個函數的:

如何快速提取一篇文章中的重复句段

也就是說,我們將待譯原文的每一個句子放到一個數組中,然後用這個函數對每一句話進行統計,看看它在這個數組中出現了多少次,然後把次數和句子放到一個新的數組中。我們只要把這個新的數組的內容展示出來就知道每個句子出現多少次了。

上述代碼在demo.tmx文件上運行後的效果如下圖:

如何快速提取一篇文章中的重复句段

以上就是使用PHP提取重複句段的方法,實際上非常非常簡單,我改進了一下上面這段代碼,加上了上傳文件的功能,所以大家可以在下面的網址中嘗試抽取一個tmx文件中原文中的重複句段:

http://translation.education/tmxfilter

以上就是從一個翻譯記憶庫格式的文件中提取重複句段的方法。但是許多朋友不想使用tmx文件,只想在線粘貼,所以我又做了下面這個工具:

http://translation.education/sentencefilter/

如何快速提取一篇文章中的重复句段

即把一整篇文章粘貼進去後會看到重複句段的統計結果。

除此以外,我還做一個小句的統計結果,也就是把一個長句按標點符號分割成若干小句,看看哪些小句出現的次數最多:

http://translation.education/senfilter/

大家自己可以在電腦上試一下上面三個網站,看看效果。點擊“閱讀原文”可以體驗第二個網站的功能。

我會根據大家的反饋,看看還能增添什麼新功能進去,大家有問題可以在下方留言。

小結

統計重複句段是個很有意思的話題,除了統計完全一樣的句段外,更有價值的是研究如何統計重複的相似句段,我還在這方面努力中,有成果後再和大家分享。

祝大家春節快樂!


分享到:


相關文章: