NoneXlsx , содержащий предложения в каждой строке. Я был в состоянии пометить тег IOB и существительное фразу отдельно. Как я могу объединить их?

У меня есть таблица xlsx с одним столбцом, который содержит предложения в каждой строке. Я успешно размечал / помечал POS каждую строку и смог пометить тег IOB и имя-фразу, но по отдельности. Мне нужно объединить их, чтобы создать базу данных, которая в конечном итоге будет состоять из четырех столбцов, содержащих каждое слово из предложений, и иметь их в формате CoNNL2003. Пример: (WORD) (POS) (тег Syntatic chunk) (тег именованного объекта) будет столбцами.

Я был в состоянии токенизировать, POS-тег и IOB-тег, но он возвращается в виде списка списков в каждой строке. То же самое с тэгом именной фразы. Помогите!

Вот пример формата файла Excel:

описание | | Процент взрослых с СД2, которые достигают HbA1c < 7,0% в течение 60–180 дней после начала приема линаглиптина в заранее определенных категориях почечной функции. Категории функции почек были представлены на основе данных пациентов с предварительно оцененным значением скорости клубочковой фильтрации (СКФ) (eGFR<30, eGFR 30–44, eGFR 45–59, eGFR 60–89, eGFR ≥ 90 миллилитров / минуту /1,73 метра). ^2 и eGFR недоступны). | | Процент взрослых с СД2, которые достигают HbA1c < 7,0% в течение 60–180 дней после начала приема линаглиптина в заранее определенных возрастных категориях (от 40 до 54 лет, от 40 до 54 лет, от 65 до 74 лет и от 75 лет и старше). | | "Изменение уровня HbA1c среди взрослых с сахарным диабетом 2-го типа (СД2) в течение 60–180 дней после начала приема линаглиптина в заранее определенных категориях почечной функции".

"" "" Питона

import pandas as pd
import nltk
from nltk import word_tokenize, pos_tag, pos_tag_sents, 
sent_tokenize
from nltk.tree import Tree
from nltk import ne_chunk
from nltk import conlltags2tree, tree2conlltags


df_file = pd.ExcelFile(r'/Users/Downloads/descriptions.xlsx')
print(df_file.sheet_names)
df = df_file.parse('Sheet1')
pdf = pd.DataFrame(df)
pdf['IOB_tag'] = pdf.description.apply(
    lambda row: 
tree2conlltags(ne_chunk(pos_tag(word_tokenize(row)))))
print(pdf)
grammar = "NP: {<DT>?<JJ>*<NN>}"
cp = nltk.RegexpParser(grammar)
pdf['noun_phrase'] = pdf.description.apply(
    lambda row: 
tree2conlltags(cp.parse(pos_tag(word_tokenize(row)))))
print(pdf)
print(pdf['IOB_tag'])
grammar = "NP: {<DT>?<JJ>*<NN>}"
cp = nltk.RegexpParser(grammar)
pdf['noun_phrase'] = pdf.description.apply(
    lambda row: 
tree2conlltags(cp.parse(pos_tag(word_tokenize(row))))and 
tree2conlltags(
        ne_chunk(pos_tag(word_tokenize(row)))))
print(pdf)

Тег IOB приводит к;

description                                            IOB_tag
0     Percentage of adults with T2DM who achieve HbA...[(Percentage, NN, O), (of, IN, O), (adults, NN...
1     Percentage of adults with T2DM who achieve HbA...[(Percentage, NN, O), (of, IN, O), (adults, NN...

pdf['IOB_tag']
[9249 rows x 3 columns]
0       [(Percentage, NN, O), (of, IN, O), (adults, NN...
1       [(Percentage, NN, O), (of, IN, O), (adults, NN...

description                                            IOB_tag
0     Percentage of adults with T2DM who achieve HbA...  [(Percentage, NN, O), (of, IN, O), (adults, NN...
1     Percentage of adults with T2DM who achieve HbA...  [(Percentage, NN, O), (of, IN, O), (adults, NN...

Похож на существительное

В конечном итоге хочу, чтобы в конечном итоге

WORD       POS      Syntatic chunk tag     Named entity tag
Percentage  NN             B-NP                  O 

.... и т. д. Пожалуйста, помогите

0 ответов

Другие вопросы по тегам