使用pyltp提取文本中的地址

class Singleton(object):
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, ‘_the_instance‘):
            cls._the_instance = object.__new__(cls, *args, **kwargs)
        return cls._the_instance
  • 使用pyltp提取地址
import os
from pyltp import Segmentor, Postagger, NamedEntityRecognizer
from main.models.Singleton import Singleton

class address_extract_model(Singleton):
    print(‘load ltp model start...‘)

    pwd = os.getcwd()
    project_path = os.path.abspath(os.path.dirname(pwd) + os.path.sep + ".")

    LTP_DATA_DIR = project_path + ‘\AlarmClassification\main\ltp\model‘  # ltp模型目录的路径
    cws_model_path = os.path.join(LTP_DATA_DIR, ‘cws.model‘)
    pos_model_path = os.path.join(LTP_DATA_DIR, ‘pos.model‘)  # 词性标注模型路径,模型名称为`pos.model`
    ner_model_path = os.path.join(LTP_DATA_DIR, ‘ner.model‘)  # 命名实体识别模型路径,模型名称为`ner.model`

    print(‘path‘ + cws_model_path)

    segmentor = Segmentor()  # 初始化实例
    segmentor.load(cws_model_path)  # 加载模型

    postagger = Postagger() # 初始化实例
    postagger.load(pos_model_path)  # 加载模型

    recognizer = NamedEntityRecognizer() # 初始化实例
    recognizer.load(ner_model_path)  # 加载模型

    def get_model(self):
        return self.segmentor, self.postagger, self.recognizer

def get_address_prediction(alarm_content):
    model = address_extract_model()
    segmentor, postagger, recognizer = model.get_model()

    words = segmentor.segment(alarm_content)  # 分词
    postags = postagger.postag(words)  # 词性标注
    netags = recognizer.recognize(words, postags)  # 命名实体识别

    result = ‘‘
    for i in range(0, len(netags)):
        print(words[i] + ‘: ‘ + netags[i])
        # 地名标签为 ns
        if ‘s‘ in netags[i]:
            result += words[i] + ‘,‘
    if len(result) < 1:
        result = ‘No address!‘
    print(result)
    return result

def get_address(alarm_content):
    print("start get_address...")
    result = "Exception"
    try:
        result = get_address_prediction(alarm_content)
    except Exception as ex:
        print(ex)

    print("Output is " + result)
    return result

# segmentor.release()  # 释放模型
# postagger.release()
# recognizer.release()
  • 运行效果

原文地址:https://www.cnblogs.com/bincoding/p/9180553.html

时间: 2024-11-02 07:07:53

使用pyltp提取文本中的地址的相关文章

C#正则表达式提取文本中以逗号间隔的数据

使用正则表达式提取文本数据到内存是很方便的技术,下面通过一个例子介绍一下如何使用正则表达式提取文本 文本中内容格式 1,2,3,4,5 2,2,2,2,2 3,3,3,3,3 C#代码如下 public List<List<string>> GetDataCSV(string path) {         string pattern = @"\d+"; List<List<string>> data = new List<Lis

Python re 截取文本中IP地址及用户名

文本示例: ts=2019-07-10T06:43:06523942Z pid=1875 tid=6320 version=e73c536 proto=http id=5a61a613e395f8832a372e4c1804ce10 http_url="/dev/ng.git/git-upload-pack" ip=10.10.5.9 xff_ip=10.10.5.9 user=wangdongdong repo=dev/ng repo_public=0 cmd=git-upload-

Linux Shell编程实战---解析文本中的邮件地址和url

解析文本中的邮件地址和url (1).使用场景 从给定的文件中解析出所需要的文本是从事文本处理时常见的一项任务.诸如电子邮件地址.URL等都能够借助适合的正则表达式找出来.我们通常需要从一个包含大量无关字符及单词的电子邮件客户列表或HTML网页中将电子邮件地址解析并提取出来. (2).正则匹配 匹配一个电子邮件地址的正则表达式如下: [A-Za-z0-9._][email protected][A-Za-z0-9.]+\.[a-zA-Z]{2,4} 匹配HTTP URL的正则表达式如下: htt

流编辑器sed使用总结及利用sed从文本中提取字符串的方法

sed 是一个编辑器,但它与其它大多数编辑器不同.除了不面向屏幕之外,它还是非交互式的,我们常用的vim编辑器则是交互式的. 这意味着必须将要对数据执行的命令插入到命令行或要处 理的脚本中.sed 在一个文件(或文件集)中非交互式.并且不加询问地接收一系列的命令并执行它们.因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器,可以对文件或者文件集批量的进行删除 替换 插入 追加等操作. 流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间. 其参数可能

用Python建一个OCR服务器,直接提取图中的文本

Why? OCR(又叫光学字符识别)已经成为Python的一个常用工具.随着开源库Tesseract和Ocrad的出现,越来越多的程序员用OCR来编写自己的库文件和bot病毒.一个OCR的小例子,如用OCR直接从截图中提取文本,省去了重新键入的麻烦. 开始的步骤 开始之前,我们需要开发一个后端服务层来表示OCR引擎的结果.这样你就可以用你喜欢的方式来向端用户表示你的结果.本文之后将会详细介绍.除此之外,我们还需要添加一点后端代码来生成HTML表格,以及一些使用这些API的前段代码.这部分本文没有

Java 提取Word中的文本和图片

本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java (免费版) Jar文件导入方法(参考): 方法1:下载jar文件包.下载后解压文件,并将lib文件夹下的Spire.Doc.jar文件导入到java程序.导入效果参考如下: 方法2:可通过maven导入.参考导入方法. 测试文档如下: Java代码示例(供参考) [示例1]提取Word中的文本 im

shell中的cut和paste函数,可以从多个文本中提取特定的列

shell中的cut和paste函数,可以从多个文本中提取特定的列,然后合并成为一个文件,方便下游分析中用R语言read.table()读取,进行分析作图. cut -d 分隔符 -f 列索引 cut -d '.' -f 2-5,8 file.txt #将文件file.txt以分隔符.进行分割,并取出第2列到第5列还有第8列的数据. paste file1 file2 > file3 原文地址:https://www.cnblogs.com/liuyin-2019/p/11846112.html

3 中文文本中的关键字提取

前言 关键词提取就是从文本里面把跟这篇文章意义最相关的一些词语抽取出来.这个可以追溯到文献检索初期,关键词是为了文献标引工作,从报告.论文中选取出来用以表示全文主题内容信息的单词或术语,在现在的报告和论文中,我们依然可以看到关键词这一项.因此,关键词在文献检索.自动文摘.文本聚类/分类等方面有着重要的应用,它不仅是进行这些工作不可或缺的基础和前提,也是互联网上信息建库的一项重要工作. 关键词抽取从方法来说主要有两种: 第一种是关键词分配:就是给定一个已有的关键词库,对于新来的文档从该词库里面匹配

纯文本中识别URI地址并转换成HTML

问题 有一段纯文本text, 欲将其插入DOM节点div中. text中可能有超链接, 邮件地址等. 如果有, 识别之. 分析 如果只是纯文本, 插入div中, 只要将div.innerText设置为text即可. text中的URI地址可以用正则识别, 并将其替换为<a/>标签组成的字符串. 此时 text变成了HTML字符串html. HTML字符串html可以赋值给div.innerHTML. 但如果原text中存在HTML语义的 字符串呢? 因此, 在识别URI之前, 需要将原text