从 SMS 文本中识别模板

数据挖掘 无监督学习 文本分类 半监督学习
2022-02-27 08:55:48

我正在构建一个应用程序,用于识别来自 SMS 的信息,类似于费用管理应用程序。我有一个解析器,它读取用户的所有 SMS,识别感兴趣的 SMS 并从中解析有用的信息。这一点工作正常,但问题是我还想对解析器的完整性和准确性进行评分。

完整性 - 在 100 条感兴趣的 SMS 中,有多少条解析器能够识别
准确性 - 在识别为相关的 SMS 中,有多少条 SMS 解析器能够提取正确的信息

我有一个手动过程来识别这些。我从语料库中随机抽取样本以及解析结果并手动标记哪些是正确的或错误的。我能够识别解析器中的差距并通过这个过程修复它们。但是,我修复的差距越多,就越难以确定此过程中的进一步差距。此外,由于样本是随机的,它有许多结构相同的短信。类似 SMS 的解析成功/失败是类似的。随机样本的完整性和准确性也不能正确代表整个语料库的正确性和准确性。

我在想,由于感兴趣的金融 SMS 具有与之关联的模板,如果我可以标记 SMS 的模板,我可以跟踪已知正确解析的模板,并且只对尚未手动标记的模板进行手动检查为了正确性。这也将帮助我构建工具来识别整个语料库的正确性、准确性和未知状态。它还可以帮助我识别添加到语料库中的新模板。

有1000个模板。模板示例:

Template1 - Thanks for spending INR 100 at Amazon on 1st Jan, your available credit limit is 1,000
Template2 - You have spent INR 100 on your credit card ending in 1234 at Amazon on 1st Jan 2020
Template3 - You txn of INR 100 is credited/reversed by Amazon on 2nd Jan 2020, Avl Bal - 1,100
Template4 - You account xxxx1234 has been debited with INR 500 and bene A/C xxxx4321 has been credit on 3rd Jan

我在谷歌上搜索了很多,许多似乎相关的结果都来自这个论坛。基于 n-gram 的相似性似乎很有趣,但我无法充分说明如何将其应用于我的问题。看起来非常相似的问题之一:在文本片段中识别带有参数的模板但是,它在从给定语料库中识别具有相似模板的句子这一意义上略有不同。我想在不查看整个语料库的情况下标记一个句子的模板我可以训练模型来标记模板,但我希望模型能够识别不属于原始语料库的新模板并标记它们。

我是一名软件工程师,之前没有数据科学方面的经验。如果我没有任何意义或者这个论坛不适合这个问题,请原谅我。我真的很感激任何帮助确定正确的方法和一些参考资料来理解所涉及的概念。

1个回答

我不确定我是否非常了解您的问题,但让我们看看。首先让我尝试将任务形式化为 ML 问题:

  • 识别感兴趣的 SMS 是一个二元分类任务。您的“完整性”分数似乎与标准召回措施相对应。还可以查看精确度通常是一个好主意,即在确定为相关的 SMS 中有多少是真正相关的。
  • 您并没有真正解释从感兴趣的 SMS 中提取信息的第二部分。一般来说,这部分可能是某种序列标记问题(类似于命名实体识别)。

如果要使用 ML,区分这两个部分很重要。

现在您正在做的是一个基于规则的系统:您手动逐个识别模式,然后系统只应用模式列表。基于规则的系统被认为是 ML 系统的祖先:正如您所注意到的,自动化识别模式的部分是可能的。鉴于您已经有标记示例(训练数据),您可以训练模型以自行识别一般模式。主要困难是为模型提供正确的功能,以便它可以尽可能正确地完成工作。请注意,一般情况下,它并不能像您手动执行的操作那样真正用作模板列表。

在不查看整个语料库的情况下识别案例的问题可能与“半监督学习”有关,其中系统迭代地学习从一小部分初始标记数据中注释未标记数据。