句子结构分析

Sentence structure analysis

我正在尝试查看句子的结构相似性,特别是动词、形容词、名词的位置。 例如,我有三个(或更多)句子如下所示:

I ate an apple pie, yesterday. 
I ate an orange, yesterday.
I eat a lemon, today. 

它们都以代词 (I) 开头,然后是动词 (ate/eat) 和名词 (apple pie, orange, lemon),最后是副词 (yesterday/tomorrow) .

我想知道是否有一种方法可以识别句子中的结构,即PRONOUN VERB NOUN ADVERB。

如果我将其视为 pandas 数据框:

SENTENCE
    I ate an apple pie, yesterday. 
    I ate an orange, yesterday.
    I eat a lemon, today. 

我需要如下内容:

SENTENCE                                    STRUCTURE
    I ate an apple pie, yesterday.        PRONOUN VERB NOUN ADJECTIVE
    I ate an orange, yesterday.           PRONOUN VERB NOUN ADJECTIVE         
    I eat a lemon, today.                 PRONOUN VERB NOUN ADJECTIVE

你知道我怎样才能得到这个(或类似的)结果吗?

这是一个使用 spacy 的简单示例:

import spacy
import pandas as pd

# load english language model
nlp = spacy.load('en_core_web_sm',disable=['ner','textcat'])

text = "I ate an apple pie, yesterday."

# create spacy 
doc = nlp(text)
pos = ""
for token in doc:
    pos += token.pos_ + " "
    
# create dataframe
df = pd.DataFrame([[text, pos]], columns=['Sentence', 'Structure'])
print(df)

输出为:

                      Sentence                                  Structure
0  I ate an apple pie, yesterday.  PRON VERB DET NOUN NOUN PUNCT NOUN PUNCT