62 lines
2.7 KiB
Python
62 lines
2.7 KiB
Python
# -*- 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()
|