Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何微调正则表达式语法来解析棘手的脏文本?_Python_Regex_Parsing - Fatal编程技术网

Python 如何微调正则表达式语法来解析棘手的脏文本?

Python 如何微调正则表达式语法来解析棘手的脏文本?,python,regex,parsing,Python,Regex,Parsing,我有一个OCR'ed.txt文件,它是一个包含书评数据的卷(它是一个书评索引)。我试图将作者、标题和评论数据分开。我已经能够清晰地区分作者,但仍然无法清晰地将标题与评论数据区分开来。以下是.txt文件的示例: 马,奇华-焕秋新英BL-v70-Jl 1'74-皮183 c马,清贤-裴娘Ti Ku Shih BL-v77-JA1'81-p630马,信德-大跃进中的中国女性 选择-v20-N'82-p396 MA,Huan•海洋海岸总体调查1433 选择-v8-0'71-pl074 MA,Huan•Y

我有一个OCR'ed.txt文件,它是一个包含书评数据的卷(它是一个书评索引)。我试图将作者、标题和评论数据分开。我已经能够清晰地区分作者,但仍然无法清晰地将标题与评论数据区分开来。以下是.txt文件的示例:

马,奇华-焕秋新英BL-v70-Jl 1'74-皮183 c马,清贤-裴娘Ti Ku Shih BL-v77-JA1'81-p630马,信德-大跃进中的中国女性 选择-v20-N'82-p396 MA,Huan•海洋海岸总体调查1433 选择-v8-0'71-pl074 MA,Huan•Ying Yai Sheng Lan AHR-v76-D'71-pl578 GJ-vl37-Je'71-p213 JAS-v31-N'71-pl81 TLS-Je 16'72-p681 MA,Laurence J C-宋朝中国的商业发展和城市变化960-1279 JAS-v31-Ag'72-p928 Pac A-v45-Summer'72-p285 MA,劳伦斯J C-环境JAS-v42-N'82-pl39 MA,劳伦斯J C-现代中国的城市发展 Choice-vl9-Ja'82-p696 JAS-v42-N 82-pl39 MA,Nancy Chih-Cook Chinese AB-v45-My 25'70-pl786 PW-vl97-Mr 23'70-p38 MA,Nancy Chih•别舔筷子CSM-v66-Ja 10'74-pF2 LJ-v99-Mr 15'74-p757 MA,Nancy Chih-马太太的日本料理 VQR-v58-82年春季-p68 MA,Tsu Sheng-化学中的微尺度操作 Choice-vl3-N'76-pi 164 MA,Tsu Sheng-气相色谱法有机官能团分析Choice-vl3-F'77-pl624 r MA,Wei Yi-人民公社中文资料参考书目ARBA-vl5-'84-p320 Pac A-v56-Winter'83-p796 MA,Wook-Seoul Ro Kanun Kil BL-v78-0 15'81-p294 MA,y W-中国传统故事ANQ-vl8-0'79-p30 BF-v4-Ap 40'79-p575 Choice-vl5 Ja'79-pl528 HR-v32-Spring'79-pl23 JAS-v38-Ag'79-p773 Kliatt-vl3•Winter'79-p26 WIT-53-Summer'79-p555 MA,Yun•Shih Ching Tao Hsing BL-v68-Ap 1'72-p651 MA BRICALL,Josep-Politica Economica De La Generalitat 1936-1939。第一卷WP-v25-O'72-pl55毫安科伊,拉美尔•短时补偿 选择-v21-Jl'84-pl648 Econ Bks-vll-S'84-p62 c MA De-牛郎和织女 curr R-v20-S'81-p325 c MA De-Crickets Cur R-v20-S'81-p325 c MA De-校长东郭Cur R-v20-S'81-p325 c MA De-三次借用芭蕉扇CurR-v20-S'81-p325 c MA De-美妙的葫芦Cur R-v20-S'81-p325 MAACK,Berthold-Preussen JMH-v55-Mr'83-p71 R MAACK,Mary N-塞内加尔图书馆ARBA-vl3-'82-pi53 CRL-v45-Mr'84-pl52 JAL-v7-S'81-p244 JLH-vl9-春季'84-p315 LJ-vl07-My 1'82-p865 LQ-v52-Ap'82-pl75 MAACK,Reinhard•Kontinentaldrift And Geologie Des Sudatantischen Ozeans GJ-vl36-Mr'70-pl38 MAAG,Russell C-观察和了解太阳 S&T-v54-S'77-p221 MAAG,Victor-Hiob 相关修订版本-vlO-Ap'84-pi 75 MAAILMA Katettu Poyta

这是一个更清晰的版本,以更好地了解我试图分离的内容:

马志华-黄秋新英BL-v70-Jl 1'74-pi 183 c 马清贤-裴娘体库时BL-v77-Ja 1'81-p630 马新德-大跃进选择中的中国女性-v20-N'82-p396 马欢•海洋海岸总体调查1433选择-v8-0'71-pl074 马欢•英雅盛兰AHR-v76-D'71-pl578 GJ-vl37-Je'71-p213 JAS-v31-N'71-pl81 TLS-Je 16'72-p681 MA,Laurence J C-宋中国的商业发展和城市变化960-1279 JAS-v31-Ag'72-p928 Pac A-v45-Summer'72-p285 马,劳伦斯J C-环境JAS-v42-N'82-pl39 马,劳伦斯J C-现代中国的城市发展选择-vl9-Ja'82-p696 JAS-v42-N 82-pl39 马,南希智-库克中文AB-v45-My 25'70-pl786 PW-vl97-Mr 23'70-p38 马,Nancy Chih•不要舔筷子CSM-v66-Ja 10'74-pF2 LJ-v99-Mr 15'74-p757 马,Nancy Chih-马太太的日本料理VQR-v58-1982年春季-p68 马祖生-化学选择中的微尺度操作-vl3-N'76-pi 164 MA,Tsu Sheng-通过气相色谱选择进行有机官能团分析-vl3-F'77-pl624 r 马,魏毅-人民公社中文资料参考书目ARBA-vl5-'84-第320页Pac A-v56-冬季'83-第796页 马,旭-首尔罗卡农基尔BL-v78-0 15'81-p294 y 马,Y W-中国传统故事ANQ-vl8-0'79-p30 BF-v4-Ap 40'79-p575选择-vl5 Ja'79-pl528 HR-v32-Spring'79-pl23 JAS-v38-Ag'79-p773 Kliatt-vl3•Winter'79-p26 WIT-v53-Summer'79-p555 马云•石景涛星BL-v68-Ap 1'72-p651 马布里考尔,约塞普——1936-1939年的广义经济政治。第一卷WP-v25-O'72-pl55 马科伊,拉美尔•短时补偿选择-v21-Jl'84-pl648经济Bks-vll-S'84-p62 c 马德-牛郎和织女Cur R-v20-S'81-p325c 马德-蟋蟀电流R-v20-S'81-p325 c 马德-东郭小学校长R-v20-S'81-p325 c 马德-三次借用芭蕉扇电流-v20-S'81-p325 c 马德-神奇的葫芦Cur R-v20-S'81-p325 马克,伯索尔德-前苏联JMH-v55-Mr'83-p71 r

这是我的代码:

# read in review volume .txt file
import pandas as pd
import numpy as np
import re

file = '/Users/sinykin/Dropbox/US_LIT_PRODUCTION_DATA/REVIEWS_DATA/BOOK_REVIEWS_INDEX_TEXTS/1965_1984_Vol_5_M-P.txt'

with open(file) as f:
    content = f.readlines()
    content = [x.strip() for x in content]
    content = " ".join(content)

# Get all authors
pattern = r"[A-Z\-]{2,}[\,]+\s[A-Za-z\s\,\(\)\.]+\s[\-\*\•\.\■ ]{1}"
authors = re.findall(pattern, content)

# Now replace all found authors with XXX_XXX
if re.search(pattern, content):
    r = re.compile(pattern)
    content2 = r.sub(r'XXX_XXX', content)

# Now get all the content for each author
content3 = content2.split('XXX_XXX')
bib = content3[1:]

# Now separate reviews from titles
pattern2 = r"\s+(?:([A-Z][a-z][a-z]((?!\s+-|\s+Choice\s*-).)*?\w)(?:\s+-
\s*|\s+(?=Choice\s*-)|\s*$))"
bib2 = "".join(bib)
titles = re.findall(pattern2, bib2)
print (titles[:1000])
我正在努力解决的是pattern2中的正则表达式代码。例如,它现在给了我这个,应该是什么标题:

[(“海洋总体调查”\xe2\x80\x99s海岸1433','3'),
('Ying-Yai Sheng Lan AHR','H'),
(《宋朝商业发展与城市变迁》960-1279年,日本,A'),
('PACA','')
('Summer\xe2\x80\x9972','7'),
books = []
for c in re.split('(XXX_XXX|MA, | MA, | MA )', content2):
    if c and not c in ['MA, ', ' MA, ', ' MA ', 'XXX_XXX']:
        books.append(c.strip())
reObj = re.compile(r'(.+?)(( [A-Z\&]{1,4})?| Choice| Cur ?R) ?- ?[’v][l]?(\d{1,2}|O )')
for book in books:
    match = reObj.match(book)
    if match:
        title = match.groups()[0]
        print('{}'.format(title))
    else:
        print('FAIL:{}'.format(book))
Chi-Hua - Huan Chiu Hsin Ying
Ching-Hsien - Pei Niang Niang Ti Ku Shih
Hsin-Teh - Chinese Women In The Great Leap Forward
The Overall Survey Of The Ocean’s Shores 1433
Ying-Yai Sheng-Lan
Commercial Development And Urban Change In Sung China 960-1279
The Environment
Urban Development In Modern China
Cook Chinese
Don’t Lick The Chopsticks
... (omitted for brevity)