精华内容
下载资源
问答
  • 2019-07-14 10:56:42
    import sys
    sys.path.append('E:\\Anaconda\\libs')
    import os #os:操作系统相关的信息模块
    import random #导入随机函数
    #存放原始图片地址
    data_base_dir = "E:\CODE\wuqianqibaiyi\wuqianqibaiyi"
    file_list = [] #建立列表,用于保存图片信息
    #读取图片文件,并将图片地址、图片名和标签写到txt文件中
    write_file_name = 'E:\CODE\TX\dir.txt'
    write_file = open(write_file_name, "w") #以只写方式打开write_file_name文件
    for file in os.listdir(data_base_dir): #file为current_dir当前目录下图片名
        if file.endswith(".jpg"): #如果file以jpg结尾
            write_name = file #图片路径 + 图片名 + 标签
            file_list.append(write_name) #将write_name添加到file_list列表最后
            sorted(file_list) #将列表中所有元素随机排列
            number_of_lines = len(file_list) #列表中元素个数
            #将图片信息写入txt文件中,逐行写入
    for current_line in range(number_of_lines):
      write_file.write(file_list[current_line] + '\n')
    #关闭文件
    write_file.close()
    

     

    更多相关内容
  • 一个用于提取简体中文字符串省,市和区并能够进行映射,检验和简单绘图的python模块。 举个例子: ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘西工业区"] ↓ 转换 |省 |市 |区 |地址 | |上海市|上海...

    简介

    一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块。

    举个例子:

        ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘西工业区"]
                ↓ 转换
        |省    |市   |区    |地址                 |
        |上海市|上海市|徐汇区|虹漕路461号58号楼5楼  |
        |福建省|泉州市|洛江区|万安塘西工业区        |
    

    注:“地址”列代表去除了省市区之后的具体地址

    安装说明

    代码目前仅仅支持python3

    pip install cpca

    注:cpca是chinese province city area的缩写

    常见安装错误:

    有的朋友在我的博客中反映他们在使用的时候会报如下错误:

    ModuleNotFoundError: No module named 'jieba'
    

    可能是因为某种原因,依赖未能成功的安装上去,这个时候则需要手动使用pip install jieba命令进行安装。

    如果觉得本模块对你有用的话,施舍个star,谢谢。

    中国三级行政区划分(爬取自中华人民共和国民政局全国行政区划查询平台

    数据文件在为cpca/resources/pca.csv,数据为2019年2月20日在官网上爬取的最新权威数据

    Get Started

    分词模式:

    本模块中最主要的方法是cpca.transform,该方法可以输入任意的可迭代类型(如list,pandas的Series类型等),然后将其转换为一个DataFrame,下面演示一个最为简单的使用方法:

    location_str = ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘西工业区", "朝阳区北苑华贸城"]
    import cpca
    df = cpca.transform(location_str)
    df
    

    输出的结果为:

           省     市    区          地址
        0 上海市 上海市  徐汇区     虹漕路461号58号楼5楼
        1 福建省 泉州市  洛江区     万安塘西工业区
        2 北京市 北京市  朝阳区     北苑华贸城
    

    注:程序输出的df是一个Pandas的DataFrame类型变量,DataFrame可以非常轻易地转化为csv或者excel文件,如果你对DataFrame不熟悉的话,可以参考Pandas的官方文档:http://pandas.pydata.org/pandas-docs/version/0.20/dsintro.html#dataframe

    ,或者往下翻到"示例与测试用例"大标题,那里我也展示了DataFrame的拼接与转换成csv文件的操作。

    如果你想获知程序是从字符串的那个位置提取出省市区名的,可以添加一个pos_sensitive=True参数:

    location_str = ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘西工业区", "朝阳区北苑华贸城"]
    import cpca
    df = cpca.transform(location_str, pos_sensitive=True)
    df
    

    输出如下:

         省    市    区        地址                  省_pos  市_pos 区_pos
    0  上海市  上海市  徐汇区  虹漕路461号58号楼5楼   -1     -1      0
    1  福建省  泉州市  洛江区  万安塘西工业区         -1      0      3
    2  北京市  北京市  朝阳区  北苑华贸城             -1     -1      0
    

    其中省_pos市_pos区_pos三列大于-1的部分就代表提取的位置。-1则表明这个字段是靠程序推断出来的,抑或没能提取出来。

    默认情况下transform方法的cut参数为True,即采用分词匹配的方式,这种方式速度比较快,但是准确率可能会比较低,如果追求准确率而不追求速度的话,建议将cut设为False(全文模式),具体见下一小节。

    尝试着对代码稍加修改(其实就是将transform方法的umap参数置为空字典):

    location_str = ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘西工业区", "朝阳区北苑华贸城"]
    import cpca
    df = cpca.transform(location_str, umap={})
    df
    

    会发现输出变为:

         省    市      区        地址
    0  上海市  上海市  徐汇区    虹漕路461号58号楼5楼
    1  福建省  泉州市  洛江区    万安塘西工业区
    2                  朝阳区    北苑华贸城
    

    发现这种情况的原因是中国其实不止一个“朝阳区”,除了北京市有一个“朝阳区”外,长春市也有一个“朝阳区”,这样的话,程序就不知道该把“朝阳区”映射到哪个市。之所以前一段程序能够成功地将“朝阳区”映射成“北京市”,是因为当你不传umap参数的时候,会默认传一个笔者推荐的字典,其内容如下(在cpca.py中):

    myumap = {'南关区': '长春市',
     '南山区': '深圳市',
     '宝山区': '上海市',
     '市辖区': '东莞市',
     '普陀区': '上海市',
     '朝阳区': '北京市',
     '河东区': '天津市',
     '白云区': '广州市',
     '西湖区': '杭州市',
     '铁西区': '沈阳市'}
    

    你会发现,其中指定了将"朝阳区"映射到北京市,因为笔者在测试数据中发现,
    数据中的"朝阳区"基本上都是指北京市那个"朝阳区"
    (原因可能是北京市的"朝阳区"的经济以及知名度要远比长春市的那个"朝阳区"发达)。
    当然,默认的这个umap并没有囊括中国所有的重名区,必要的时候需要自己定义。

    看看下面一个例子:

    location_str = ["江苏省鼓楼区软件大道89号"]
    import cpca
    df = cpca.transform(location_str)
    df
    

    输出结果为:

       省      市   区      地址
    0  江苏省       鼓楼区  软件大道89号
    

    可以看到,市没有被成功提取出来,并且还会产生一个警告信息:

    WARNING:root:鼓楼区 无法映射, 建议添加进umap中
    

    如果想要关闭这个警告信息,可以在调用transform函数时将open_warning置位False

    当程序发现重名区并且不知道将其映射到哪一个市时,会将其加入警告信息,
    提示用户最好根据数据给它指定一个市进行映射。

    这里无法提取的原因是江苏省南京市有一个鼓楼区,江苏省徐州市也有一个鼓楼区,
    程序无法知道这个鼓楼区是南京市的还是徐州市的。

    通过数据接口你可以发现这个事实:

    import cpca
    cpca.province_area_map.get_relational_addrs(('江苏省', '鼓楼区'))
    

    输出:

    [('江苏省', '南京市', '鼓楼区'), ('江苏省', '徐州市', '鼓楼区')]
    

    如果你想要让“鼓楼区”只映射到南京市的话,在transform方法中加入umap参数指定
    映射即可:

    location_str = ["江苏省鼓楼区软件大道89号"]
    import cpca
    df = cpca.transform(location_str, umap={"鼓楼区":"南京市"})
    df
    

    输出结果:

       省      市      区      地址
    0  江苏省  南京市  鼓楼区  软件大道89号`
    

    再看下面一个例子:

    location_str = ["福建省鼓楼区软件大道89号"]
    import cpca
    df = cpca.transform(location_str)
    df
    

    输出结果为:

       省      市      区      地址
    0  福建省  福州市  鼓楼区  软件大道89号
    

    这里就可以成功将“福州市”识别出来,因为在福建省,只有福州市有鼓楼区。

    好在中国只有在三级行政区存在重名问题,二级与一级行政区的名称都是唯一的。

    有的时候为了方便concat,想要自定义输出表的index,可以选择使用transform函数的index参数(这个参数只要保证长度和data相同即可,可以是list或者pandas中相关的类型),示例如下:

    location_str = ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘西工业区", "朝阳区北苑华贸城"]
    import cpca
    df = cpca.transform(location_str, index=["2018年","2017年","2016年"])
    df
    

    输出结果:

            省      市      区      地址
    2018年  上海市  上海市  徐汇区  虹漕路461号58号楼5楼
    2017年  福建省  泉州市  洛江区  万安塘西工业区
    2016年  北京市  北京市  朝阳区  北苑华贸城
    

    全文模式

    这个模式的出现是为解决issue #11 所提到的问题。

    jieba分词并不能百分之百保证分词的正确性,在分词错误的情况下会造成奇怪的结果,比如下面:

    location_str = ["浙江省杭州市下城区青云街40号3楼"]
    import cpca
    df = cpca.transform(location_str)
    df
    

    输出的结果为:

         省    市      区    地址
    0  浙江省  杭州市  城区  下城区青云街40号3楼
    

    这种诡异的结果是因为jieba本身就将词给分错了,所以我们引入了全文模式,不进行分词,直接全文匹配,使用方法如下:

    location_str = ["浙江省杭州市下城区青云街40号3楼"]
    import cpca
    df = cpca.transform(location_str, cut=False)
    df
    

    结果如下:

       省       市     区         地址
    0  浙江省  杭州市  下城区     青云街40号3楼
    

    这下就完全正确了,不过全文匹配模式会造成匹配效率低下,
    我默认会向前看8个字符(对应transform中的lookahead参数默认值为8),
    这个是比较保守的,因为有的地名会比较长(比如“新疆维吾尔族自治区”),如果你的地址库中都是些短小的省市区名的话,
    可以选择将lookahead设置得小一点,比如:

    location_str = ["浙江省杭州市下城区青云街40号3楼"]
    import cpca
    df = cpca.transform(location_str, cut=False, lookahead=3)
    df
    

    输出结果和上面是一样的。

    再举一个例子,这个例子经测试只有使用全文匹配才能匹配出地名,:

    import cpca
    cpca.transform(["11月15日早上9点到11月18日下班前王大猫。在观山湖区"], cut=False, pos_sensitive=True)
    

    输出为:

        省     市      区        地址                                              省_pos 市_pos 区_pos
    0  贵州省  贵阳市  观山湖区  11月15日早上9点到11月18日下班前王大猫。在观山湖区     -1     -1     25
    

    绘图:

    模块中还自带一些简单绘图工具,可以在地图上将上面输出的数据以热力图的形式画出来.

    这个工具依赖folium,为了减小本模块的体积,所以并不会预装这个依赖,在使用之前请使用pip install folium .

    代码如下:

    from cpca import drawer
    #df为上一段代码输出的df
    drawer.draw_locations(df, "df.html")
    

    这一段代码运行结束后会在运行代码的当前目录下生成一个df.html文件,用浏览器打开即可看到
    绘制好的地图(如果某条数据’省’,'市’或’区’字段有缺,则会忽略该条数据不进行绘制),速度会比较慢,需要耐心等待,绘制的图像如下:

    绘图展示

    还有更多的绘图工具请参考文档的大标题为“示例与测试用例”的部分。

    到这里就你就已经知道了本模块的基本使用了,接下来我会阐明更多细节。

    数据接口

    爬取的原始数据位于cpca/resources/pca.csv
    ,模块会在启动时读取该文件并将其中的数据转换为需要的数据结构。

    通过以下方法可以访问本模块内部的数据结构:

    ## 查询经纬度信息
    from cpca import latlng
    latlng[('北京市','北京市','朝阳区')] #输出('39.95895316640668', '116.52169489108084')
    
    ## 查询含有"鼓楼区"的全部地址
    from cpca import area_map
    area_map.get_relational_addrs('鼓楼区') #[('江苏省', '南京市', '鼓楼区'), ('江苏省', '徐州市', '鼓楼区'), ('福建省', '福州市', '鼓楼区'), ('河南省', '开封市', '鼓楼区')]
    #### 注: city_map可以用来查询含有某个市的全部地址, province_map可以用来查询含有某个省的全部地址
    
    ## 查询含有"江苏省", "鼓楼区"的全部地址
    from cpca import province_area_map
    province_area_map.get_relational_addrs(('江苏省', '鼓楼区')) # [('江苏省', '南京市', '鼓楼区'), ('江苏省', '徐州市', '鼓楼区')]
    

    关于匹配与映射的细节

    为了保证匹配与映射的正确性,我做了很多细节上的处理,如果在使用本模块的过程中遇到困惑可以参考这里。

    • 能够匹配到省或者市的缩写,比如将"北京市"缩写为"北京",“江苏省"缩写为"江苏”,依旧能够匹配到并且能够自动补全为全称,示例代码如下:
    #测试数据
    location_strs = ["江苏省南京市鼓楼区256号", "江苏南京鼓楼区256号"]
    
    import cpca
    df = cpca.transform(location_strs)
    df
    

    输出的结果为:

         区    市     省       地址
    0  鼓楼区  南京市  江苏省   256号
    1  鼓楼区  南京市  江苏省   256号
    

    我不仅做了这些缩写情况处理,还处理了诸如"新疆维吾尔族自治区"缩写为"新疆","西藏藏族自治区"缩写为"西藏"等情况,如下:

    import cpca
    
    location_str = ["新疆","广西","宁夏","西藏"]
    df = cpca.transform(location_str)
    df
    

    输出:

       省                 市    区   地址
    0  新疆维吾尔自治区       
    1  广西壮族自治区       
    2  宁夏回族自治区       
    3  西藏自治区  
    

    具体的这些缩写的处理位于代码的cpca/__init__.py的78行到第96行

    • 以先出现的地名为准
    #测试数据
    location_strs = ["江苏省南京市徐州市鼓楼区256号"]
    
    import cpca
    df = cpca.transform(location_strs)
    df
    

    后出现的徐州市并没有被提取。

    • 最后一列的地址字段,本质上是原字符串去除了开头的地名之后的字符串,如果字符串中间出现地名的话是不会被摘去的

    再看之前的一个例子:

    import cpca
    cpca.transform(["11月15日早上9点到11月18日下班前王大猫。在观山湖区"], cut=False, pos_sensitive=True)
    

    输出为:

        省     市      区        地址                                              省_pos 市_pos 区_pos
    0  贵州省  贵阳市  观山湖区  11月15日早上9点到11月18日下班前王大猫。在观山湖区     -1     -1     25
    

    可以看到整个省市区三级地址都是从"观山湖区"这几个字符提取出来,但是因为它在句尾,在"地址"列中
    并没有将其摘去,如果在句中的话也同样不会摘去的。

    • 本模块的映射功能仅限:如果区对应的市是唯一的话,能够由区映射到市;能够由市映射到省级;已知省和区,如果该区在省内是唯一的话,能够映射出市

    示例与测试用例

    本仓库放了一份大约一万多条地址描述信息tests/addr.csv
    ,用于测试模块,测试代码如下:

    • 测试基本功能:
    #读取数据
    import pandas as pd
    origin = pd.read_csv("tests/addr.csv")
    #转换
    import cpca
    addr_df = cpca.transform(origin["原始地址"])
    #输出
    processed = pd.concat([origin, addr_df], axis=1)
    processed.to_csv("processed.csv", index=False, encoding="utf-8")
    

    注意以上代码运行结束后会打印一句warnning,这些warnning是因为程序无法确定某个区县属于哪个市(因为这些区县存在重名问题而且在umap中又没有指定它属于哪一个市).

    • 测试绘图函数1(绘制热力图):

    模块中绘制热力图的函数是基于folium编写的,为了减小模块体积,在安装模块时没有安装这些绘图库的依赖,如果需要使用这个函数的话,需要先使用pip install folium安装folium

    from cpca import drawer
    #processed为上一段代码的processed
    drawer.draw_locations(processed, "processed.html")
    

    用浏览器打开"processed.html"文件,发现绘制的局部图像如下(在国内folium的地图显示速度比较慢,所以需要耐心等待地图显示):

    长三角热力图

    (注意:本模块在绘图时,只绘制那些可以精确地匹配到省市区的地址,对于省市区有一个或多个字段缺失的则会直接忽略)

    • 测试绘图函数2(绘制echarts热力图):

    因为在国内folium的地图显示速度太慢了,所以添加了echarts的热力图绘图函数.

    在使用本函数之前需要先用如下命令安装它的依赖(为了减少本模块的体积,所以这些依赖不会被自动安装):

    pip install pyecharts
    pip install echarts-countries-pypkg
    pip install pyecharts-snapshot
    

    示例代码如下,仍然使用之前的测试数据生成的processed变量:

    from cpca import drawer
    drawer.echarts_draw(processed, "echarts.html")
    

    该接口的更多参数及其含义如下:

    def echarts_draw(locations, file_path, title="地域分布图"
                     , subtitle="location distribute"):
        """
        生成地域分布的echarts热力图的html文件.
        :param locations: 样本的省市区, pandas的dataframe类型.
        :param file_path: 生成的html文件路径.
        :param title: 图表的标题
        :param subtitle: 图表的子标题
        """
    

    然后会在当前目录下生成一个echarts.html文件,用浏览器打开后即可看到图像:

    echarts热力图

    • 测试绘图函数3(绘制分类信息图):

    在使用本函数之前需要安装的依赖同上一个绘图函数,如果你是跳过了前面的直接读到这里的话,务必向上翻看一下。

    样本分类绘制函数,通过额外传入一个样本的分类信息,能够在地图上以不同的颜色画出属于不同分类的样本散点图,以下代码以“省”作为类别信息绘制分类散点图(可以看到,属于不同省的样本被以不同的颜色标记了出来,这里以“省”作为分类标准只是举个例子,实际应用中可以选取更加有实际意义的分类指标):

    from cpca import drawer
    drawer.echarts_cate_draw(processed, processed["省"], "echarts_cate.html")
    

    然后会在当前目录下生成一个echarts_cate.html文件,用浏览器打开后即可看到图像:

    echarts分类散点图

    该接口更多的参数及其含义如下:

    def echarts_cate_draw(locations, labels, file_path, title="地域分布图", subtitle="location distribute",
                          point_size=7):
        """
        依据分类生成地域分布的echarts散点图的html文件.
        :param locations: 样本的省市区, pandas的dataframe类型.
        :param labels: 长度必须和locations相等, 代表每个样本所属的分类.
        :param file_path: 生成的html文件路径.
        :param title: 图表的标题
        :param subtitle: 图表的子标题
        :param point_size: 每个散点的大小
        """
    

    How to Contribute

    项目代码还很粗糙,如果大家对代码有所改进,欢迎提交回本项目
    ,在提交之前,注意以下两点:

    • tests添加相应的单元测试
    • 使用python setup.py test来运行所有单元测试,确保所有单测都是通过的

    之后即可提交PR

    END

    如果大家在使用过程中发现一些匹配错误的地址,欢迎提issue来帮助我收集这些错误用例和改善算法,毕竟笔者手头数据有限,难以考虑到所有边界情况

    下一步开发规划

    • 解决路名被误识别为省市名的问题
    • 增加定期从民政局官网爬取最新省市区划分的功能

    来源:https://github.com/DQinYuan/chinese_province_city_area_mapper

    其它阅读:https://github.com/elyase/geotext
    https://blog.csdn.net/sxb0841901116/article/details/96328330

    展开全文
  • 利用Python提取PDF文件的文本信息

    千次阅读 多人点赞 2020-09-20 20:58:13
    如何利用Python提取PDF文件的文本信息 ...答案是通过python实现pdf文本信息的批量自动化提取,这里介绍通过以下五个库来实现信息提取:PyPDF2, Textract, tika, pdfPlumber, pdfMiner,原文参考这

    如何利用Python提取PDF文件中的文本信息

    日常工作中我们经常会用到pdf格式的文件,大多数情况下是浏览或者编辑pdf信息,但有时候需要提取pdf中的文本,如果是单个文件的话还可以通过复制粘贴来直接将文本信息复制出来,但如果是要提取成本上千个pdf文件中的文本信息,有没有什么比较快捷的方式可以实现自动化提取呢?作为一个python爱好者,答案当然是想办法通过python代码实现pdf文本信息的批量自动化提取,这里介绍以下五个pdf操作库:PyPDF2, Textract, tika, pdfPlumber, pdfMiner,本文主要参考这个博客撰写而成:How to Extract Text from PDF

    一、PyPDF2

    推荐程度:★★★
    pypi官网地址PyPDF2
    安装方法:pip install PyPDF2
    工具包简介

    • 可以提取pdf内文档信息(标题、作者、…)
    • 可以分割、合并pdf
    • 可以对pdf文件进行加密或解密

    这个库的优点是安装简便,但是虽然可以准确提取出文件内的文本信息,但会把一行文本内的每个单词打断成多行,甚至把完整的单词也切割开来,识别精度不是很高。
    实例演示
    代码示例

    import PyPDF2
    fhandle = open(r'D:\examplepdf.pdf', 'rb')
    pdfReader = PyPDF2.PdfFileReader(fhandle)
    pagehandle = pdfReader.getPage(0)
    print(pagehandle.extractText())
    

    二、textract

    推荐程度:不推荐
    pypi官网地址textract
    安装方法:pip install textract
    工具包简介

    • 可以轻松提取提取任何文档中的文字

    虽然官方号称可以轻松提取任何文件的文本信息,但经过实测,目前这个库存在严重的bug,在python3.7环境下提取任何pdf文件都会报错。

    代码示例

    # some python file
    import textract
    text = textract.process("path/to/file.extension")
    

    三、Apache Tika

    推荐程度:★★
    pypi官网地址tika
    安装方法:pip install tika
    工具包简介

    • Apache Tika库的Python端口
    • 由于tika-python会在后台启动tika rest服务器,系统需安装Java 7+ 版本才能正常使用这个库

    这个库最大的问题是需要依赖Java环境使用,配置比较麻烦,并且即使配置好环境,还是有可能没法获得文本解析结果。
    实例演示
    代码示例

        from tika import parser
        file = "D:\\440000201900BD8P6M.pdf"
        file_data = parser.from_file(file)
        text = file_data['content']
        print(text)
    

    四、pdfPlumber

    推荐程度:★★★★★
    pypi官网地址pdfPlumber
    安装方法:pip install pdfplumber
    工具包简介

    • 可以为pdf文件插入文本字符、矩形和行的详细信息
    • 对于非扫描格式pdf解析效果最佳
    • 基于pdfminer.six构建

    这个库安装简单,不容易出幺蛾子,使用方式也简单明了,pdf文本提取精度非常高,强烈推荐!!!
    实例演示

    代码示例

    import pdfplumber
    with pdfplumber.open(r'D:\examplepdf.pdf') as pdf:
        first_page = pdf.pages[0]
        print(first_page.extract_text())
    

    五、pdfminer

    推荐程度:★★★★
    pypi官网地址pdfminer
    安装方法:pip install pdfplumber
    工具包简介

    • 支持 PDF-1.7
    • 可以获取文本的提取位置以及其他布局信息
    • 可将pdf转换为其他格式(HTML/XML)
    • 支持基本的加密方式(RC4 and AES)
    • 支持多种字体类型(Type1, TrueType, Type3, and CID)

    官方说明很详细,但是使用起来略微有些复杂,需要仔细看示例代码才好上手,不过文本提取精度也相当不错!
    实例演示

    代码示例

    from pdfminer3.layout import LAParams, LTTextBox
    from pdfminer3.pdfpage import PDFPage
    from pdfminer3.pdfinterp import PDFResourceManager
    from pdfminer3.pdfinterp import PDFPageInterpreter
    from pdfminer3.converter import PDFPageAggregator
    from pdfminer3.converter import TextConverter
    import io
    
    resource_manager = PDFResourceManager()
    fake_file_handle = io.StringIO()
    converter = TextConverter(resource_manager, fake_file_handle, laparams=LAParams())
    page_interpreter = PDFPageInterpreter(resource_manager, converter)
    
    with open('/path/to/file.pdf', 'rb') as fh:
    
        for page in PDFPage.get_pages(fh,
                                      caching=True,
                                      check_extractable=True):
            page_interpreter.process_page(page)
    
        text = fake_file_handle.getvalue()
    
    # close open handles
    converter.close()
    fake_file_handle.close()
    
    print(text)
    

    总结

    当前用于解析操作pdf的python包已经有相当之多,本文只是列出了其中比较有代表性的五种,在实际使用中首推pdfPlumber,安装简便,上手也比较容易,其次是pdfminer,虽然学习成本高一点,但pdf操作功能相当齐全。总之,只要能较为熟练的掌握其中一种工具包,在某些需要操作大量pdf的情况下,应该可以极大提升工作效率。

    展开全文
  • 1、首先要从几个地址拼接一起,然后从中提取信息,城市、省份/State或者国家 ,因为这个地址不一定包含省和国家 2、获得信息之后去哪里找对应关系,比如如果是个城市,如何找到所属国家 第一个问题的解决办法...

    今天有位朋友请教,如何在不联网的情况下,从根据几个地址获取所在国家的ISO编码?

    比如: 快递地址是西安市丈八六路12小区,国家ISO编码: CHN

    我解决思路是: 

    1、首先要从几个地址拼接在一起,然后从中提取信息,城市、省份/State或者国家 ,因为这个地址中不一定包含省和国家

    2、获得信息之后去哪里找对应关系,比如如果是个城市,如何找到所属国家

    第一个问题的解决办法我想到2种。就是通常说的,Named Entity Recognition. 

    方法一,用python 工具包geotext,  geotext介绍。 我刚开始计划用geograpy,但是安装2次都失败了。后来我的geotext更简单。 

    可以看到获取国家和城市了。 

    方法二、用结巴分词,然后根据词性获取。

    可以看到这个里面获取的数据有很大的误差。 

    解决第二个问题的办法是:

    我在看到mysql有word.sql, 这个文件中包括了世界上国家、城市、State关系。

    看这个地址还有这个地址

    获取这个数据在本地本地建立数据库,然后用方案一获取的值去这个里面查询。

    先从国家查,然后从state查询,最后从city查询。 

    就可以获取到国家的ISO编码

     

     

    展开全文
  • # -*- coding: UTF-8 -*-  #!/usr/bin/env python import sys ... im.save('E:/CODE/wu3haomi/chenxutiqude/{}'.format(a[:-1])) #把文件夹指定的文件名称的图片另存到该路径下 im.close()  
  • 【数据分析】⚠️走进数据分析 3⚠️ Beautiful Soup 提取页面信息
  • Python编程:提取身份证号信息

    千次阅读 2020-06-04 19:30:59
    Python编程:提取身份证号信息 题目: 中华人民共和国居民身份证号由17位数字和一位校验码组成。前1—2位数字表示省或直辖市代码、3—-6数字表示市、区的代码;第7—14位数字表示出生年月日;第15—16位数字...
  • 如下所示:# -*- coding:utf-8 -*-import syssys.path.append('E:\\Anaconda\\libs')import os #os:操作系统相关的信息模块import random #导入随机函数#存放原始图片地址data_base_dir = "C:\\Users\\...
  • 如何用python提取txt文件的特定信息并写入Excel

    万次阅读 多人点赞 2019-10-07 10:54:25
    我的问题: 我有一个这样的数据集,大概几百上千行,两行数据之间隔一个空行。...现在我希望能提取每一行X:和Y:后面的数字,然后保存下来做进一步的数据处理和分析 就拿第一行来说,我只需要-2.668 和...
  • Excel提取超链接信息

    千次阅读 2020-09-08 21:09:12
    如果想要提取该地址信息,可以按如下方法进行操作。 打开Excel文档,按“Alt+F11”进入VBA环境。右击“Microsoft Excel 对象”,从其扩展菜单选择“插入”-“模块”项。 接着打开的“模块1”编辑界面,输入...
  • 本文的需求是提取docx文档里面的数据信息,包括文本和Excel表格信息。 经过一上午的搜索,目前找到了一些文字,整理成自己需要的的代码。 二、提取数据 安装模块: 我这里直接命令安装即可。 pip install python-...
  • VCF文件时基因组分析最常见的文件类型,有时需要从中提取部分信息进行后续分析,《vcf、plink文件格式互转》我们已经提及了SNPs的提取方法: #file.txt, snp名字作为一列,无header,输出格式为vcf ...
  • 而今天的内容,主要会此基础上进一步提取出我们认为有价值的信息提取数据知识点在提取数据的过程,我们依旧会用到熟悉的BeautifulSoup库。下面我会介绍一下其中比较常用的两个方法:find()以及find_all()。...
  • 利用卷积神经网络提取图像的特征信息_Pytorch

    千次阅读 热门讨论 2022-03-25 15:09:51
    查看h5文件信息 创建h5.py,用于查看之前提取的特征信息.代码如下: import h5py f = h5py.File('feature.h5', 'r') # 读取文件,一定记得加上路径 for key in f.keys(): print(f[key].name) # 打印出文件的...
  • 从快递地址分离出省、市、区、县、镇、区等信息是一个相当复杂的工作。 中国的地址并都是省、市、县、镇、区、大队、小队这种命方式,而是每一级都采用了多元化命名。例如第一级并非都是省,还有直辖市、自治区;...
  • Python初学者,这是最近看的《Python编程实践》dict和set那一章的课后题,实在是解决不了,也没搜索到其他的...编写一个函数,以一个**文件名列表**为输入参数,这些文件找出所有的作者姓名,并以集合的形式返回
  • 提取系统apk

    千次阅读 2021-11-23 09:36:34
    提取系统apk 公司有个Android设备,里面内置了一款厂家自带的应用,该应该里面有一些...通过adb命令列出Android设备的所有应用 adb shell pm list packages 效果如下: 确认这些包名里面有你需要的应用的包名,可
  • 经常有一些小伙伴问,CAD怎么批量提取坐标点,今天给大家总结三种方法。方法一:多段线顺序连接并提取。1、多段线pl连接点;2、li命令提取坐标;3、将点位粘贴至excel,利用数据,分列,最后改成想要的格式;方法...
  • 背景:学测序流程的时候,做到mapping的时牛的基因组有两个多G,因为是个人PC上初步学习,建立index实在太慢了,而且临时也没有现成的index。于是决定只挑基因组前十条染色体拿来练习(所以需要从基因组文件里选取...
  • Python提取PDF的图片

    万次阅读 多人点赞 2019-01-03 10:54:26
    # 2018/08/16更新: ...Python提取word的图片(需要的自取): Python提取Word的图片 最近项目需要把word、PDF的图片专门提取出来保存到另外的文件夹,最终成功实现; 最近项目需要把word、PDF...
  • 话题:1、excel输入名字自动跳出相应的部门或是工号?回答:1.建立好姓名同部门、工号相对应的表格后,用vlookup函数进行对应姓名的数据提取。2.用SUMIF函数来按关键字“姓名”来分别合计。参考回答:我告诉你一个...
  • 如何使用ArcGIS从DEM数据中提取水系

    千次阅读 多人点赞 2020-06-10 14:49:07
    比较偏远的地方,往往会缺少水文信息,我们可以通过ArcGIS对高程DEM数据进行水文分析,为地表水流建立模型,进而获取到该地的水文信息,DEM数据精度越高,获取到的水文数据精度也就越高,这里,我们主要介绍水文...
  • 从本子文件名中提取本子的名字

    千次阅读 2016-09-11 23:08:03
    于是我就决定把本子的名字提取出来,阅读器里只显示本子的名字,这样每个本子是哪 本就一目了然了首先先观察本子文件名的规律 发现本子的各种信息 作者 汉化组 展会 出处 都在中括号或者小括号里面,只有本子名不 ...
  • 如何快速批量提取图片信息到Excel表格,如何批量获取图片大小尺寸信息 不知道如何如获取图片的文件路径、文件名、图片大小尺寸等很多图片信息 路径、分辨率、宽度、高度、垂直水平分辨率、位深度、创建日期、...
  • ArcGIS:提取某一行政区边界及信息

    万次阅读 2019-04-26 22:43:56
    提取某一行政区域边界; 删除某一区域; 显示行政区域的名字
  • 文章目录系列文章目录前言节点选择器——提取信息的方法1. 提取信息的方法2. 总结 前言 Beautiful Soup是一个API简单、功能强大、支持多种解析器,能够实现编码转化的解析工具。本教程就用来介绍Beautiful Soup的...
  • 如何用GLASS数据TIMESAT中提取物候参数

    千次阅读 多人点赞 2020-01-19 17:39:16
    如何用GLASS数据TIMESAT中提取物候参数TIMESAT准备数据TIMESAT处理统计结果 TIMESAT TIMESAT为我们提取生长季物候参数提供了极大的方便,但是其界面过于简单,对数据有一定的要求,经过本人一年多的探索与熟悉,...
  • python网络爬虫与信息提取

    千次阅读 多人点赞 2018-11-28 11:33:28
    课程《Python网络爬虫与信息提取-北京理工大学-嵩天》的内容,作为笔记 Table of Contents 一、网络爬虫之规则:Requests库 1. request()方法 2. 其他方法  3. 爬取网页的通用代码框架 4. 实例 5. 网络...
  • 从文本提取信息
  • 渗透测试进入内网之后,首要目标就是得到域控权限,将域所有用户的hash值全部跑出来,下载到本地。很多工具比如meterpreter的smart_hashdump和Impacket的secretsdump.py都可以做到。 但是有些情况下我只能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,314
精华内容 64,925
关键字:

在信息中如何提取名字