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
.... и т. д. Пожалуйста, помогите