【问题标题】:How to build a text classifier for words? [closed]如何为单词构建文本分类器? [关闭]
【发布时间】:2018-07-16 12:55:22
【问题描述】:

我正在尝试将大量单词分为 5 类。每个类的类和字符串示例包括:

invoice-Number : "inv123","in12","123"
invoice-Date   : "22/09/1994","22-Mon-16"
vendor-Name    : "samplevendorname"
email          : "abc@gmail.com"
net-amount     : "1234.56"

非常感谢任何在 python 中实现这一点的指针。

编辑 1:我正在寻找一种机器学习方法,因为类的数量会更多,并且每个类中的数据会有所不同,因此正则表达式是不可行的。

【问题讨论】:

    标签: python machine-learning nltk text-classification naivebayes


    【解决方案1】:

    您可以从基于 BoW (Bag of Word) 的想法开始,但使用不删除任何字符的标记器修改为 BoC(字符后缀)并为 1 到 4 个字符构建 n-grams 字典。

    之后,您可以将任何单词表示为一个向量,这可以与存在的数量、是或不存在或tfidf 相匹配。

    然后构建您的模型并将单词向量传递给它以供学习。您可以研究 n-gram 的交叉标签以丢弃在数据集中产生噪音的那些。

    我希望这有助于作为一个起点。

    【讨论】:

    • 谢谢 Tzomas。正是我想要的。
    【解决方案2】:

    当您询问指针时,请阅读regular expressions。它们允许您检查字符串是否与特定模式匹配。

    Python 通过 re 模块内置了对 RegEx 的支持。请参阅re.match 函数。

    很遗憾,我自己是 RegEx 的初学者,所以我无法为您提供更多帮助。但我已经为您提供了上面所需的链接。希望这足以解决您的问题。

    同时,我会请朋友回答这个问题。

    编辑:

    我研究了 RegEx 一分钟,这就是我想出的:

    import re
    
    s = <Whatever you are trying to match>
    
    invoice_number = '(inv|in)\d+'
    invoice_date = '((\d{2}/\d{2}/\d{4})|(\d{2}-[A-Z][a-z]{2}-\d{2}))'
    vendor_name = '[a-z]+'
    email = '\w+@\w(\.\w+)+'
    net_amount = '\d+\.\d{2}'
    
    if re.match(invoice_number, s):
        # classify as invoice-number
    elif re.match(invoice_date, s):
        # classify as invoice-date
    elif re.match(vendor_name, s):
        # classify as vendor-name
    elif re.match(email, s):
        # classify as email
    elif re.match(net_amount, s):
        # classify as net-amount
    else:
        # OOPS!!!
    

    【讨论】:

      【解决方案3】:

      尝试找出类之间的差异。例如,我可以看到发票号码往往混合了字母和数字,日期可能包含 / 或 -,电子邮件必须有 @,最后净金额将完全由数字组成。如果您可以使用这些属性,我相信您可以轻松对它们进行分类。

      否则,如果比较困难,您可以尝试使用 NLTK,但我不知道这对本示例的效果如何。

      【讨论】:

        猜你喜欢
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多