我想提供一种服务,可以在其他网站上找到招聘信息,让用户可以轻松申请这些工作。
我想提供的是一种自动筛选的形式;具体来说,我想添加一个选项来过滤掉含有模糊语言的帖子,以防用户不希望第三方招聘人员发布招聘信息(因为模糊的语言是这类帖子的标志)。
是否有一种算法可以用来衡量某些文本的模糊性或清晰度?
答案 0 :(得分:3)
据我所知,你需要一个分类器来将职位描述分为两类:“第三方”和“雇主本身”。这是一项经典的text classification任务,与spam filtering非常相似。
垃圾邮件过滤的主要区别如下:
因此,我建议您使用有监督的机器学习方法来完成您的任务。创建一系列的工作描述 - 收集每种类型的100-200并不难,这就足够了,我想。然后尝试ML分类器,如随机森林,逻辑回归或朴素贝叶斯,具有简单的功能,如词袋;上传职位描述的人的姓名;文字长度;也尝试一些二进制功能,例如存在像@ Sklivvz♦。
推荐的特殊单词例如,请查看Naive Bayes spam filtering。
您的课程(“模糊文字”和“明文”)似乎过于模糊,无法创建有效的分类器。另外,你假设这个分类等同于我上面提出的分类(你真的需要),看起来并不可靠。
答案 1 :(得分:2)
我在我的网站上为Careers Stack Overflow撰写了类似的内容,尽管不完全是你所要求的。
有些短语通常表示模糊的工作广告:公司术语。虽然很难确定一个单词或短语实际是否以行话方式使用,但很明显许多不良帖子有很多匹配 - 他们使用了很多这样的单词
您可以在网站上测试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();
}
返回
内包
-centric