Algorithm 基于机器学习的地址检测

Algorithm 基于机器学习的地址检测,algorithm,machine-learning,neural-network,Algorithm,Machine Learning,Neural Network,我目前正在开发一个工具,旨在检测文本中的地址(或任何模式,如工作、运动队或任何东西) 所以我现在做的是: 1/将文本拆分为文字 2/词干 用户可以创建类别(工作、运动队、地址…),并将手动为类别分配一个句子 这个句子的每个词干单词都将存储在DB中,并更新分数(+1) 当我浏览一个新文档时,我会计算每个句子的分数,感谢其中的所有单词 例如: 我住在伦敦的布朗街 =>(现场+1、布朗+1、街道+1、伦敦+1) 那么下次我看到 我住在伦敦的橘子街 分数是3(现场+1,街道+1,伦敦+1),所以我可以说

我目前正在开发一个工具,旨在检测文本中的地址(或任何模式,如工作、运动队或任何东西)

所以我现在做的是:

1/将文本拆分为文字 2/词干

用户可以创建类别(工作、运动队、地址…),并将手动为类别分配一个句子

这个句子的每个词干单词都将存储在DB中,并更新分数(+1)

当我浏览一个新文档时,我会计算每个句子的分数,感谢其中的所有单词

例如:

我住在伦敦的布朗街

=>(现场+1、布朗+1、街道+1、伦敦+1)

那么下次我看到

我住在伦敦的橘子街 分数是3(现场+1,街道+1,伦敦+1),所以我可以说“这句话可能是地址”。如果用户验证,我将更新单词(live+1、orange+1、street+1、london+1)。 如果他说“不准确”,所有的话都会被否决

我认为如果运行次数更多,我将能够检测到地址,因为“Street”和“London”将有一个高分(邮政编码等相同)

我的问题是:

首先,您如何看待这种方法? 其次,这种方法忽略了上下文。用Street&London的句子应该有更好的分数。 这意味着,如果我在同一句话中发现Street&London,我们很可能会说它是一个地址

如何将这些信息存储在数据库中?我目前正在使用一个关系数据库(MySQL),但是如果我存储每个单词之间的链接,恐怕它的大小会变得很大

这就是我们所说的神经网络吗?最好的储存方式是什么


你有什么建议来升级我的检测算法吗?

给每个单词打分的想法是合理的,但我会坚持使用更标准的机器学习方法

例如,您可以使用单词袋技术将每个句子转换为向量。之后,您可以为数据安装一个分类器(您可以尝试一些简单的方法,比如朴素贝叶斯。它可以很好地用于文本分类,尤其是在样本数量较少的情况下)

详细信息取决于您最初拥有的数据量和您每天从用户处收到的数据量。如果你有很多数据,而新数据的数量非常少,你可以在上面训练模型,并使用新数据进行预测。如果你有很多新的例子,你可能会用一个支持在线学习的模型做得更好。还有一种“中间地带”的方法:只有在有了一批新的示例后,才能对分类器进行重新训练(可以使用该批的大小)。这样可以考虑新样本,但不需要为每个新样本重新训练模型

再一次,我将从一个标准的句子矢量化方法(例如,计数矢量化)开始,并使用一个有效支持在线学习(或至少批量更新)的简单分类器


这样,您只需要存储模型的参数,而不是所有用户输入,这样数据的大小就不会增长

给每个单词打分的想法是合理的,但我会坚持使用更标准的机器学习方法

例如,您可以使用单词袋技术将每个句子转换为向量。之后,您可以为数据安装一个分类器(您可以尝试一些简单的方法,比如朴素贝叶斯。它可以很好地用于文本分类,尤其是在样本数量较少的情况下)

详细信息取决于您最初拥有的数据量和您每天从用户处收到的数据量。如果你有很多数据,而新数据的数量非常少,你可以在上面训练模型,并使用新数据进行预测。如果你有很多新的例子,你可能会用一个支持在线学习的模型做得更好。还有一种“中间地带”的方法:只有在有了一批新的示例后,才能对分类器进行重新训练(可以使用该批的大小)。这样可以考虑新样本,但不需要为每个新样本重新训练模型

再一次,我将从一个标准的句子矢量化方法(例如,计数矢量化)开始,并使用一个有效支持在线学习(或至少批量更新)的简单分类器

这样,您只需要存储模型的参数,而不是所有用户输入,这样数据的大小就不会增长

这就是我们所说的神经网络吗? 嗯,没有。 神经网络是一种模型。它是你可以用来实现你想要的目标的模型

你有什么建议来升级我的检测算法吗? 对与特征工程和手工编码规则相比,最好使用神经网络

深度递归神经网络是你应该尝试的。如果你有大量的数据,深度网络比任何复杂的算法都要好。(在您的情况下,如果您没有足够的数据,您可以在线废弃数据)

在培训阶段,您将给神经网络一些带有标签的行,标签为
true
false
(文本是否表示地址行)。经过足够的训练,网络将能够识别给定的文本是否代表地址行

通过深入学习,最关键的是数据。更多的数据胜过复杂的算法,好的数据胜过更多的数据

希望这有帮助

这就是我们所说的神经网络吗? 嗯,没有。 神经网络是一种模型。它是你可以用来实现你想要的目标的模型

你有什么建议来升级我的检测算法吗? 对与特征工程和手工编码规则相比,最好使用神经网络

深度递归神经网络是你应该尝试的。深网跑赢任何一家公司