我正在从事一个从 pdf 中提取文本的项目。
在提取文本并为每个标题和段落分配标签后,我想将它们的索引添加到新列表中以定位每篇文章。
这是示例列表:
['p', '', '', '标题', 'p', ', 'p', '', '', 'p', ', '', '', '标题', 'p', 'p', ', '', 'p', ', '', '标题']
article-index = [[article1], [article2], [article3]]
article-index = [[header, p, s, p, p], [header, p, p], [header, p, p, s]]
def get_position(list_, tag):
#convert list to an array
array = np.array(list_)
#return an array of position of searched item
index = np.where(array == tag)[0]
return index
----
get_position(list, 'header')
----
array([3, 13, 31])
输出:
articles_index = [[4,5,6,9,10], [13,14,15, 16, 18, 19], [21]]
感谢您的意见。
答案 0 :(得分:1)
我认为此解决方案可能对您有所帮助:
解决方案 1:
import copy
a=['p', '', '','header', 'p', 's', 'p', '', '', 'p', 's', '', '','header', 'p', 'p', 's', '', 'p', 's', '', 'header']
b=[]
# Now wanted to create a sub-list after the "header" string. b=[[header, p, s, p, p], [header, p, p], [header, p, p, s]]
for j in range(len(a)):
try:
index_remover=a.index('')
del a[index_remover]
except:
pass
a_copy=copy.copy(a)
index=0
indexes=[]
for k in a:
# all instace finder
if k=='header':
indexes.append(index)
index+=1
for j in range(len(indexes)):
try:
b.append(a[indexes[0]:indexes[1]+1])
del indexes[0]
except:
pass
解决方案 2:
a=['p', '', '','header', 'p', 's', 'p', '', '', 'p', 's', '', '','header', 'p', 'p', 's', '', 'p', 's', '', 'header']
b=[]
for j in range(len(a)):
try:
index_remover=a.index('')
del a[index_remover]
except:
print(Exception)
for i in a:
index_finder=a.index('header')
b.append(a[0:index_finder-1])
del a[0:index_finder+1]
print(b)