【问题标题】:How can I programatically measure the vagueness of text?如何以编程方式测量文本的模糊性?
【发布时间】:2015-03-10 21:56:57
【问题描述】:

我想提供一项服务,可以在其他网站上查找招聘信息并让用户轻松申请这些职位。

我想提供的是一种自动筛选帖子的形式;具体来说,我想添加一个选项来过滤使用含糊语言的帖子,以防用户不想要来自 3rd 方招聘人员的职位发布(因为含糊的语言是这类帖子的一个明显标志)。

有没有一种算法可以用来衡量某些文本的模糊度或清晰度?

【问题讨论】:

  • 我已经删除了 API/库推荐的请求:他们在这里偏离主题,人们投票结束。

标签: algorithm text nlp


【解决方案1】:

据我了解,您需要将职位描述分类为 2 类:“第 3 方”和“雇主本身”。这是一个经典的text classification 任务,与spam filtering 非常相似。

与垃圾邮件过滤的主要区别如下:

  1. 类之间的界限模糊:即使是人类也常常无法确定职位描述的来源。
  2. 职位描述的作者几乎没有反击。

因此,我建议对您的任务使用有监督的机器学习方法。创建一系列工作描述 - 收集每种类型的 100-200 个并不难,我想这已经足够了。然后尝试 ML 分类器,如随机森林、逻辑回归或朴素贝叶斯,它们具有简单的特征,如词袋;上传职位描述的人的姓名;文本的长度;也尝试一些二进制特征,例如存在特殊词,例如@Sklivvz♦ 推荐的词。

Naive Bayes spam filtering 为例。

您的类(“模糊文本”和“明文”)似乎过于模糊,无法创建有效的分类器。此外,您认为此分类等同于我上面制定的分类(这是您真正需要的分类)的假设看起来并不可靠。

【讨论】:

    【解决方案2】:

    我在我的职业堆栈溢出网站上写了类似的东西,尽管不完全是你的要求。

    有一些短语通常表示一个模糊的招聘广告:公司行话。虽然很难确定单个单词或短语是否实际上以行话的方式使用,但很明显,许多不良帖子都有很多匹配项 - 他们使用了很多这样的词。

    您可以在此处测试tool,网站上还有更多explanations

    关于代码,它只是一系列静态编译的正则表达式。简单,适合我的需要。

    void Main()
    {
    
        string test = "developer-centric vision of insourcing";
        var matches = BadChecks.SelectMany(bad => 
            bad.Matches(test)
               .Cast<Match>()
               .Select(m => m.Value.ToLowerInvariant())
            ).ToList();
    
        foreach (var res in matches)
            Console.WriteLine(res);
    
    }
    
    private static readonly List<Regex> BadChecks = SetupBadChecks();
    
    private static List < Regex > SetupBadChecks() {
        return new List < string > {
            "(#1|number (one|1))",
            "([a-z]+)-free",
            "(Out|in)sourcing",
            "-centric",
            "a wider net",
            "Aggregator",
            "Alignment",
            "all hands on deck",
            //  more
            "Wellness",
            "Win(-| )win",
            "World(-| )class"
        }.Select(s => new Regex(s, RegexOptions.IgnoreCase |
                                   RegexOptions.CultureInvariant |
                                   RegexOptions.Compiled))
         .ToList();
    }
    

    返回

    内包
    以中心为中心

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 2016-02-04
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2011-12-25
      • 2021-03-24
      • 2011-10-07
      • 2013-06-28
      相关资源
      最近更新 更多