Commit 26be0be8 authored by morion Cham's avatar morion Cham
Browse files

txt格式修改

parent d9c98689
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,3 +4,6 @@
[submodule "users/ycm/图中图提取/labelGo-Yolov5AutoLabelImg"]
	path = users/ycm/图中图提取/labelGo-Yolov5AutoLabelImg
	url = https://github.com/cnyvfang/labelGo-Yolov5AutoLabelImg.git
[submodule "labelGo-Yolov5AutoLabelImg"]
	path = labelGo-Yolov5AutoLabelImg
	url = https://github.com/cnyvfang/labelGo-Yolov5AutoLabelImg.git
Original line number Diff line number Diff line
Subproject commit b873a7d5482d152ded714120fcc7e34e7a038fb7
+12 −17
Original line number Diff line number Diff line
%% Cell type:code id: tags:

``` python
import re
import pandas as pd
```

%% Cell type:code id: tags:

``` python
with open('../../public/data/2.txts/中国出土青铜器全集/北京-天津-内蒙古/第162页-162.txt','r') as f:
    content = f.read()
print(content)
```

%% Output

    183.杆头饰
    西周
    高5、上端盖顶径7.1~8.1、铆钉长7、宽
    1.6、对穿孔径2.2~2.4厘米,重365克
    出土于内蒙古自治区赤峰市宁城县甸子
    乡小黑石沟M8501(M8501:77),现藏
    于辽中京博物馆。
    上端为蘑菇形盖顶,中空,盖两侧存有圆
    形对穿孔。下端面存有两个长方形镂孔,
    正中为扁长条形样卯。
    184.长方形器
    西周
    长8.1、宽7、厚0.6、纽长1.3、宽1、侧穿孔长1.6、宽1厘米,重556克
    出土于内蒙古自治区赤峰市宁城县甸子乡小黑石沟M8501(M8501:72),现藏于辽中京博物馆。
    长方形,扁体,上端有两个方形纽,两侧各有长方形穿孔。四周可见合范铸缝,正面饰以网格状几
    何纹,背面饰以四个三角形镂孔。
    1449
    

%% Cell type:markdown id: tags:

# pdf页面提取得到的文本文件格式说明

**1. 从第19页开始,是青铜器的页面**

**2. 第57, 87, 116, 144, 146-150, 155, 161, 163, 171, 174, 175, 187, 189-195, 199, 210-213页两个器物的信息没有被分开**

## 第一行:'器物编号' + '.' + ('空格') + '器物名' + '\n'

*第23, 24, 26-29, 43-45, 56, 57, 69, 70, 74, 80, 82, 83, 103, 116-119, 123, 142, 183, 187, 235, 236, 250页器物名缺失*

## 第二行:'朝代' + '\n'

## 第三行:('修饰语') + '长/宽/高/重/···' + ('修饰语') + '数值' + '、/单位,' + '长/宽/高/重···' + '数值' + ··· + '\n'

*一行有若干个分隔,先是'长/宽/高/···',用'、'分隔,只在最后一个写上单位'厘米',一直到后面用','隔开,换单位'千克/克'*

*注意'修饰语'不会每次都重复,所以要注意因为修饰语的捕捉*

e.g. “通高9.4、通长17.2、连耳通宽18.2、器盖的长径17.2、短径13.2、口的长径15.6、短径12.3厘米,重746克”

*数值可能带有'~',要注意识别*

e.g. “通长14.5、管长7.3、口径1.7~3、刃长7.3、宽2.8、疣长4、直径3厘米,重350克”

*这一类信息有可能有换行*

*第221页是多行!*

## 第四行:('出土年份') + '出土于' + '出土地址' + ',' + '现藏于' + '馆藏地址' + '。\n'

*这类信息存在换行*

%% Cell type:code id: tags:

``` python
bw_index = ['ID','器名','朝代','通高','口径','出土地点','口部','耳部','足部','腹部','纹饰']
```

%% Cell type:code id: tags:

``` python
text = """
175.节约
西周
长4、宽2.7、厚1、穿孔长1.2、宽0.8、截面
直径0.8厘米,重27克
出土于内蒙古自治区赤峰市宁城县甸子
乡小黑石沟M9601【M9601:140~145
(3对,6件)1,现藏于辽中京博物馆。
M9601:140,整体造型作鸟形,头、尾和
翅膀共有四个穿孔相互贯通,背面有十
字形镂孔。尖状喙,用圆圈纹表现眼睛,
以斜线纹表现羽毛。
176.扣饰
西周
通长4、宽1.8、纽长0.7、高0.3厘米,重
4.8克
1989年出土于内蒙古自治区赤峰市克什克
腾旗龙头山ⅢIM3,现藏于内蒙古自治区
1989年出土于内蒙古自治区赤峰市克什克腾旗龙头山ⅢM3,现藏于内蒙古自治区
文物考古研究所。
双联珠上接一对大立耳,立耳装饰凸线
纹,联珠背面附桥形纽以便穿系,因佩带
时双耳朝下,也称为“双尾铜饰”。
C1409

"""
pattern = r'\d+\.\s?[\u3001\u4e00-\u9fff]+?\n[\u4e00-\u9fff]+?\n'
result = re.sub(pattern, lambda match: match.group(0).replace('\n', '$'), text)
result = re.sub(r'(?<=博物馆|研究所|博物院|委员会|文管会|文物局)。?\n',lambda match: match.group(0).replace('\n','$'),result)
result = re.sub(r'[克米升]\n',lambda match: match.group(0).replace('\n','$'), result)
result = re.sub(r'(?<=。)\n(?=\d+\.\s?[\u3001\u4e00-\u9fff]+?)',lambda match: match.group(0).replace('\n','$'),result)
result = re.sub(r'\n','',result)
result = re.sub(r'\$','\n',result)
print(result)
```

%% Output

    175.节约
    西周
    长4、宽2.7、厚1、穿孔长1.2、宽0.8、截面直径0.8厘米,重27克
    出土于内蒙古自治区赤峰市宁城县甸子乡小黑石沟M9601【M9601:140~145(3对,6件)1,现藏于辽中京博物馆。
    M9601:140,整体造型作鸟形,头、尾和翅膀共有四个穿孔相互贯通,背面有十字形镂孔。尖状喙,用圆圈纹表现眼睛,以斜线纹表现羽毛。
    176.扣饰
    西周
    通长4、宽1.8、纽长0.7、高0.3厘米,重4.8克
    1989年出土于内蒙古自治区赤峰市克什克
    腾旗龙头山ⅢIM3,现藏于内蒙古自治区文物考古研究所。
    1989年出土于内蒙古自治区赤峰市克什克腾旗龙头山ⅢM3,现藏于内蒙古自治区文物考古研究所。
    双联珠上接一对大立耳,立耳装饰凸线纹,联珠背面附桥形纽以便穿系,因佩带时双耳朝下,也称为“双尾铜饰”。C1409

%% Cell type:code id: tags:

``` python
re_ID_QiMing_ChaoDai = re.compile(r'(\d+)?\.\s?([\u4e00-\u9fa5]+)?\n([\u4e00-\u9fa5]+)?\n')
find_group = re.findall(re_ID_QiMing_ChaoDai, content)
```

%% Cell type:code id: tags:

``` python
re_ChiCun = re.compile(r"([\u4e00-\u9fa5]+)([\d\.]+)(?:~([\d\.]+))?(?:(厘米|千克|米|克))?(?:出土于(\S+?),)?")
re_ChiCun = re.compile(r"([\u4e00-\u9fa5]+)([\d\.]+)(?:~([\d\.]+))?(?:([千厘毫]?[克米升]))?[,、]?\n.*出土于(\S+),")
re.findall(re_ChiCun, result)
```

%% Output

    [('长', '4', '', '', ''),
     ('宽', '2.7', '', '', ''),
     ('厚', '1', '', '', ''),
     ('穿孔长', '1.2', '', '', ''),
     ('宽', '0.8', '', '', ''),
     ('截面直径', '0.8', '', '厘米', ''),
     ('重', '27', '', '克', ''),
     ('通长', '4', '', '', ''),
     ('宽', '1.8', '', '', ''),
     ('纽长', '0.7', '', '', ''),
     ('高', '0.3', '', '厘米', ''),
     ('重', '4.8', '', '克', '')]
    [('重', '27', '', '克', '内蒙古自治区赤峰市宁城县甸子乡小黑石沟M9601【M9601:140~145(3对'),
     ('重', '4.8', '', '克', '内蒙古自治区赤峰市克什克腾旗龙头山ⅢM3')]

%% Cell type:code id: tags:

``` python
re_ChuTu = re.compile(r'出土于(\S+?),')
re.findall(re_ChuTu, result)
```

%% Output

    ['内蒙古自治区赤峰市宁城县甸子乡小黑石沟M9601【M9601:140~145(3对']

%% Cell type:code id: tags:

``` python
page_set = set(range(19,257))
rm_set1 = {23, 24, 26, 27, 28, 29, 43, 44, 45, 56, 57, 69, 70, 74, 80, 82, 83, 103, 116, 117, 118, 119, 123, 142, 183, 187, 235, 236, 250}
rm_set2 = {57, 87, 116, 144, 146, 147, 148, 149, 150, 155, 161, 163, 171, 174, 175, 187, 189, 190, 191, 192, 193, 194, 195, 199, 210,211, 212,213}
page_set = page_set.difference(rm_set1).difference(rm_set2)
for i in page_set:
    with open('../../public/data/2.txts/中国出土青铜器全集/北京-天津-内蒙古/第{}页-{}.txt'.format(i,i),'r') as f:
        text = f.read()
    pattern = r'\d+\.\s?[\u3001\u4e00-\u9fff]+?\n[\u4e00-\u9fff]+?\n'
    result = re.sub(pattern, lambda match: match.group(0).replace('\n', '$'), text)
    result = re.sub(r'(?<=博物馆|研究所|博物院|委员会|文管会|文物局)。?\n',lambda match: match.group(0).replace('\n','$'),result)
    result = re.sub(r'[克米升]\n',lambda match: match.group(0).replace('\n','$'), result)
    result = re.sub(r'(?<=。)\n(?=\d+\.\s?[\u3001\u4e00-\u9fff]+?)',lambda match: match.group(0).replace('\n','$'),result)
    result = re.sub(r'\n','',result)
    result = re.sub(r'\$','\n',result)
    with open('./txt.out/第{}页.txt'.format(i),'w') as txt_out:
        txt_out.write(result)
```

%% Cell type:code id: tags:

``` python
df = []
for i in page_set:
    with open('./txt.out/第{}页.txt'.format(i),'r') as f:
        content = f.read()
    re_pattern= re.compile(r'(\d+)\.\s?([\u3001\u4e00-\u9fff]+)\n([\u4e00-\u9fff]+)\n.*\n.*出土于(\S+),')
    matched = [[i] + list(tupl) for tupl in  re.findall(re_pattern, content)]
    df += matched
```

%% Cell type:code id: tags:

``` python
df = pd.DataFrame(df, columns = ['页码', '编号', '器名', '朝代', '出土地址'])
```

%% Cell type:code id: tags:

``` python
df
df.to_csv('北京-天津-内蒙古.txt',sep='\t')
```

%% Cell type:code id: tags:

``` python
df = pd.read_csv('北京-天津-内蒙古.txt', sep = '\t')
df
```

%% Output

         Unnamed: 0   页码   编号  器名    朝代                     出土地址
    0             0   19    1  圆鼎  商代前期               北京市平谷区刘家河墓
    1             1   20    2  圆鼎  商代前期               北京市平谷区刘家河墓
    2             2   21    3  方鼎  商代前期               北京市平谷区刘家河墓
    3             3   22    4   赢  商代前期               北京市平谷区刘家河墓
    4             4   25    7   向  商代前期               北京市平谷区刘家河墓
    ..          ...  ...  ...  ..   ...                      ...
    245         245  254  338  牌饰    东汉      内蒙古自治区乌兰察布市察右后旗二兰虎沟
    246         246  255  339  牌饰    东汉      内蒙古自治区鄂尔多斯市伊金霍洛旗陶亥召
    247         247  255  340  牌饰    东汉  内蒙古自治区赤峰市敖汉旗康家营子乡康家营子墓葬
    248         248  256  341  带钩    东汉     内蒙古自治区赤峰市敖汉旗牛古吐乡千斤营子
    249         249  256  342   印    东汉      内蒙古自治区赤峰市翁牛特旗乌丹镇白音汉
    
    [250 rows x 6 columns]

%% Cell type:code id: tags:

``` python
re_ChiCun = re.compile(r"([\u4e00-\u9fa5]+)([\d\.]+)(?:~([\d\.]+))?(?:(厘米|千克|米|克|升))?(?:出土于(\S+?),)?")
re.findall(re_ChiCun, result)
```
+1 −1
Original line number Diff line number Diff line
131.匕
西周
长10.4、直径0.3~0.5、羊首长1.6、宽1.7厘米
1992年出土于内蒙古自治区赤峰市宁城县甸子乡小黑石沟IⅡM14(IM14:4),现藏于内蒙古自治区文物考古研究所。
1992年出土于内蒙古自治区赤峰市宁城县甸子乡小黑石沟ⅡM14(M14:4),现藏于内蒙古自治区文物考古研究所。
圆雕羊首,双角盘曲,双眼以圆涡纹表示。匕身为细长的圆柱体,匕端略宽、微翘,有浅凹槽。
132.罐
西周
+2 −1
Original line number Diff line number Diff line
@@ -6,5 +6,5 @@
169.马衔
西周
长19.3、短柄长8.3厘米,重483.6克
1992年出土于内蒙古自治区赤峰市宁城县甸子乡小黑石沟IⅡIM11(IⅡIM11:27),现藏于内蒙古自治区文物考古研究所。
1992年出土于内蒙古自治区赤峰市宁城县甸子乡小黑石沟M11(M11:27),现藏于内蒙古自治区文物考古研究所。
中间为两尖圆环套接,杆两端有短横柄,上接三圆环。3.136
 No newline at end of file
Loading