gpt4 book ai didi

Python - 一种学习和检测文本模式的方法?

转载 作者:太空狗 更新时间:2023-10-29 18:07:11 25 4
gpt4 key购买 nike

问题:

我得到了一长串 IT 行业职位(支持或开发)的各种职位头衔;我需要根据它们所代表的一般工作类型自动对它们进行分类。例如,IT 支持分析师、服务台分析师等。都可以属于 IT-Support 组。

当前方法:

目前,我正在手动构建正则表达式模式来实现这一点,当我遇到应该包含在一个组中的新标题时,它会发生变化。例如,我最初使用的模式是:

“(帮助|服务)服务台”

匹配 IT-Support 类型的工作,这最终变成了:

“(帮助|支持|服务)(桌面|分析)”

更具包容性。

问题:

我觉得应该有一种相当直观的方法来使用某种算法自动构建这些正则表达式模式,但我不知道这可能是如何工作的……我过去曾简要阅读过 NLP,但它对我来说非常陌生......关于我如何在有/没有 NLP 的情况下实现这样的算法有什么建议吗?

编辑:

我正在考虑使用决策树,但它有一些限制,无法(在这种情况下)“开箱即用”;例如,如果我构建了以下树:

(Service)->(Desk)->(Support) OR ->(Analyst) ...其中 Support 和 Analyst 都是 Desk 的子级

假设我得到字符串“Level-1 Service Desk Analyst”...这应该使用上面的决策树进行分类,但它不会固有地匹配树(因为没有名为“Level”或“的根节点一级”)。

我相信我现在正朝着正确的方向前进,但我需要额外的逻辑。例如,如果我得到以下假设字符串:

  1. IT 服务台分析师
  2. 1 级服务台分析师
  3. 计算机服务台支持

我希望我的算法创建如下内容:

(Service OR Help)->(Desk)->(Analyst OR Support) ...其中 Service 和 Help 都是根节点,Analyst 和 Support 都是办公 table

基本上,我需要以下内容:我希望这种匹配算法能够将出现的字符串减少到最少数量的子字符串,从而有效匹配给定类别中的所有字符串(最好使用决策树)

如果我说得不够清楚,请告诉我!

最佳答案

好吧,设置赏金让我学到了很多关于这个主题的新 Material ,但最终我是在回答我自己的问题。

我决定使用 Python 的模式模块,使用朴素贝叶斯分类器。

由于用户手动对位置进行分类,因此每次生成一个csv文件:

“帮助台分析师”、“帮助台”“服务台”、“帮助台”、《Jr. Java Developer》、《Java Development》...等

我的算法看起来像这样(取自 http://www.clips.ua.ac.be/pages/pattern-vector#classification ):

>>> from pattern.vector import Document, NB
>>> from pattern.db import csv
>>>
>>> nb = NB()
>>> for review, rating in csv('reviews.csv'):
>>> v = Document(review, type=int(rating), stopwords=True)
>>> nb.train(v)
>>>
>>> print nb.classes
>>> print nb.classify(Document('A good movie!'))

...其中reviewrating 分别是position_textposition_group。分类器数据从一次搜索(和程序执行)保存到下一次搜索。

每次用户搜索时,算法都会运行(考虑到所有先前的分类),程序会根据其最佳猜测 对返回的位置进行分类。显然,分组的位置越多,这些猜测就越准确。

我将实现的下一步是将用户分类数据上传到中央服务器,让该软件的所有实例都可以自动从中央服务器下载,以使其更加稳健。这样,每个用户(愿意为项目贡献数据的人)都将为训练该软件的分类系统做出贡献,并且随着时间的推移,它会变得非常健壮。

关于Python - 一种学习和检测文本模式的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21500736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com