# -*- coding: utf-8 -*- import unittest from app.core.text_cleanup import deduplicate_asr_text class TextCleanupTest(unittest.TestCase): def test_cleanup_repeated_meeting_words(self) -> None: self.assertEqual( deduplicate_asr_text("在在整个B C融合在在政街包邮上面"), "在整个B C融合在政街包邮上面", ) self.assertEqual(deduplicate_asr_text("需要需要去做的"), "需要去做的") self.assertEqual( deduplicate_asr_text("这个这个审核的一个流程意识"), "这个审核的一个流程意识", ) self.assertEqual( deduplicate_asr_text("都是都是一个货开卷在"), "都是一个货开卷在", ) def test_cleanup_currency_artifacts_from_itn(self) -> None: text = "都可以采取¥9000的,看采取¥9¥9000的手机档次还是¥5000的手机档次" self.assertEqual( deduplicate_asr_text(text), "都可以采取9000元的,看采取9000元的手机档次还是5000元的手机档次", ) def test_cleanup_household_count_glued_with_noise(self) -> None: text = "已经收集到240247户的一个清单。我们测算的话大概有114户,要占他的大概百分之接近50。" self.assertEqual( deduplicate_asr_text(text), "已经收集到247户的一个清单。我们测算的话大概有114户,要占他的大概百分之接近50。", ) def test_cleanup_preserves_normal_numeric_contexts(self) -> None: self.assertEqual(deduplicate_asr_text("目前已经完成了1115户"), "目前已经完成了1115户") self.assertEqual(deduplicate_asr_text("合同金额有120000"), "合同金额有120000") def test_cleanup_collapses_degenerate_numeric_clauses(self) -> None: self.assertEqual(deduplicate_asr_text("192。192。192。192。192。"), "192。") self.assertEqual( deduplicate_asr_text("现在还行,有点儿。对。你还都能弄来。172021。你们都会用。192。192。192。192。幺九"), "现在还行,有点儿。对。你还都能弄来。172021。你们都会用。192。幺九", ) def test_cleanup_collapses_degenerate_short_sentence_clauses(self) -> None: self.assertEqual(deduplicate_asr_text("对。对。"), "对。对。") self.assertEqual(deduplicate_asr_text("对。对。对。对。"), "对。") self.assertEqual( deduplicate_asr_text("把这个ifi的驱动文件上传到服务器。对。对。对。对"), "把这个ifi的驱动文件上传到服务器。对。", ) if __name__ == "__main__": unittest.main()