Дублированный текст в том же предложении - PullRequest
0 голосов
/ 09 ноября 2019

Я разрабатываю приложение для моего офиса дяди. В файле документа Word содержится список всех сеансов (более 3 тыс. Сеансов = 465 страниц).

При извлечении возникла проблема. место суда как-то дублируется в базе данных. например: -

enter image description here

некоторые экземпляры дублируются дважды, некоторые - без дублирования, а некоторые переходят в 4 дублированных экземпляра. Как я могу получить красный из этого дублированного текста в SQL или Python. Я не могу поделиться исходным файлом, потому что он конфиденциальный.

Мой метод извлечения:

1- Преобразование Word в XML.

2- Использование Python для извлечения данных изтаблица.

3 - отправьте ее в базу данных.

from xml.dom import minidom

def extract(file_name):
    dic = []
    xmldoc = minidom.parse(file_name) # load the files 
    # get all rows from the table
    itemlist = xmldoc.getElementsByTagName('w:tr')
    # loop through all the rows 
    for item in itemlist:
        # get columns in the row
        columns = item.getElementsByTagName('w:tc')
        ob = {}
        col_index = -1
        # coloum of a row
        for column in columns:
            #get text from the columnt 
            # expected one object or a list
            data = column.getElementsByTagName('w:r')
            col_index += 1

            #if it's empty, just ignore        
            if(len(data) == 0):
                ob[col_index] = "-"
            else:
                # sometimes the text in the cell has multiple lines, 
                # so we have to add all the text inside the box
                val = ""
                for d in data :
                    try:
                        text = data[0].getElementsByTagName('w:t')
                        val += text[0].firstChild.nodeValue
                    except:
                        val = "-"
                ob[col_index] = (val).encode('utf-8') 
        dic.append(ob) # append to the list 
    return dic 

def extractasCSV(file_name):
    dic = extract(file_name=file_name)
    full = ""
    for item in dic :
        str = ""
        for i in range(1,7):
            str += item[i] + ", "
        full += str + "\n"

    return full

Примечание. Я делаю добавление для каждого w: t : иногда каждая ячейка имеетнесколько строк, поэтому мне нужна вся информация там

...