我在做一个项目,需要我从句子中提取地址.

例如,输入句子:Hi, Mr. Sam D. Richards lives here Shop No / 123, 3rd Floor, ABC Building, Behind CDE Mart, Aloha Road, 12345. If you need any help, call me on 12345678

我正试图提取地址,即Shop No / 123, 3rd Floor, ABC Building, Behind CDE Mart, Aloha Road, 12345

到目前为止,我已经try 了:

我try 了Pyap,它也适用于Regex,因此无法更好地将其推广到除美国/加拿大/英国以外的其他国家的地址.我意识到我们不能使用Regex,因为地址或句子没有任何模式.还try 了locationtagger,它只能返回国家或城市.

有没有更好的方法?

推荐答案

如果regex没有明显的模式,那么可以try 基于ML的方法.有一个众所周知的问题named entity recognition(NER),通常作为序列标记问题来解决:对模型进行训练,以预测每个标记(例如单词或子单词)是否是地址的一部分.

您可以查找已经过提取地址训练的模型(例如,此处为https://huggingface.co/models?search=address),或在您自己的数据集上微调基于BERT的模型(here是一个配方).

Python-3.x相关问答推荐

Pandas—在特定列上比较两行双框,并根据特定条件保留其中一行?

Django 5.0.2和django_rest_framework

Pandas groupby基于索引的连续列值相等

这是重命名极地df列的最好方式吗?

比较和排序 DataFrame 两列中的值并在 python 中的同一行中排序

它们是否同样存储在python3的内存中?

考虑到Pandas 系列中的不同索引,如何正确估计两列的百分比变化? Python相关

Python 3 `str.__getitem__` 的计算复杂度是多少?

Pandas 值列中列表中元素的计数

Dask worker post-processing

Seaborn 热图 colored颜色 条标签作为百分比

Python:遍历子列表

'~'(波浪号)运算符在 Python 中的应用

Selenium (Python) - 使用 Chrome 网络驱动程序等待下载过程完成

Python configparser 不会接受没有值的键

为什么排序列表比未排序列表大

使用 asyncio 的多个循环

TypeError:只有整数标量数组可以转换为标量索引

Python 3中星型导入的函数形式是什么

如何判断列表中的所有项目是否都是字符串