You*_*sef 2 database data-mining text-mining
我有一个大型数据库的简历(CV),并有一定的表的技巧把所有用户的技能.
在该表中,有一个字段skill_text,用于描述全文技能.
我正在寻找一种算法/软件/方法来从该表中提取重要的术语/短语,以便构建一个具有标准化技能的新表.
以下是从DB中提取的一些示例技能:
输出应该是这样的:
如你所见,只有技能仍然没有其他表示文字.
我知道这可以使用文本挖掘技术,但如何做到这一点?数据库真的很大..这是一件好事,因为我们可以计算文本频率并决定它是真正的技能还是只是无意义的文本......最大的问题是......如何确定"blablabla"是一种技能?
编辑:请不要告诉我使用标准的东西,如文本tokinzer,或正则表达式..因为用户以非常随意的方式输入技能!!
谢谢
如果我以编程方式执行此操作,我会:
将所有标点符号分隔的数据(或者可能只是括号和逗号)提取到一个新表中(没有主键,只有技能)所以Creative work (Photoshop, In-Design, Illustrator)变为
Skill
-------------
Creative work
Photoshop
In-Design
Illustrator
Run Code Online (Sandbox Code Playgroud)
然后,在您继续所有简历之后,查询最常用的技能(这是MySQL)
SELECT skill, COUNT(1) cnt FROM newTable GROUP BY skill ORDER BY cnt DESC;
Run Code Online (Sandbox Code Playgroud)
这可能看起来像这个人为的例子
Skill Cnt
---------------------
Photoshop 3293
Illustrator 2134
Creative work 932
In-Design 123
Run Code Online (Sandbox Code Playgroud)
然后你决定,从顶部X的技能,你想捕捉,必须映射到其他技能(Indesign以及In-design使用数据映射应映射到相同的技能,例如)和丢弃,那么脚本的进程.
使用数据映射写入新的单词频率表(这次是skill_id,技能,频率),第二次解析数据时也写入查找表(cv_id,skill_id).然后,您的数据将处于这样的状态:每个CV都映射到许多技能,每个技能都映射到多个CV.您可以查询最受欢迎的技能,符合特定标准的简历等.