繁体   English   中英

如何在Python中计算给定语料库的复数和单数

[英]How to count the number of plurals and singulars given a corpus in Python

希望您能帮助我完成任务。

我需要计算语料库中的复数和单数。 我有一个语料库,其语系具有以下结构:

['4', 'lanzas', 'lanza', 'NCFP000']

第一个位置[0]计数为数字(4),第二个[1]计数为形式(lanzas),第三位置[2]计数为引理(lanza),第四个位置[3]计数为a。类别(NCFP000),例如动词,名词等。因此,在该语料库中,每个单词都是根据其引理和类别构成的,如果单词是单数,复数,男性或女性,则类别会向我们提供信息。

Here are some examples of lines from the corpus:

['1', 'Cargó', 'cargar', 'VMIS3S0']

['2', 'el', 'el', 'DA0MS0']

['3', 'camión', 'camión', 'NCMS000']

['4', 'con', 'con', 'SP']

['5', 'los', 'el', 'DA0MP0']

['6', 'trastos', 'trasto', 'NCMP000']

['7', 'más', 'más', 'RG']

['8', 'pesados', 'pesado', 'AQ0MP00']

['9', '.', '.', 'Fp']

因此,如您所见,最后位置[3]占了单词的类别,因此AQ0MP00表示单词是复数形式和形容词。

我的问题是在这种情况下如何计算复数和单数? 具体来说,我需要计算整个语料库中的以下类别(NCFS000,NCFP000,NCMS000和NCMP000,代表复数,单数,女性和男性)。

到目前为止,我已经尝试过了:

语料库=开放( 'F:/python/corpus-morf.txt', 'R')

文本=开放( 'F:/python/deberes.txt', 'R')

线= corpus.readlines()

对于我来说:

lista=i.split()

#print(lista)

p=len(lista)

if p >0:

    forma=lista[1].rstrip()

    lema=lista[2].rstrip()

    categoria=lista[3].rstrip()

    aa=[forma,lema,categoria]                                                                            

我被困在这里。

你有什么想法? 衷心感谢您的帮助。

这是一种方法-请注意,这涵盖了所有类别,因此您只需要针对所关注的字典对结果字典进行过滤:

from collections import Counter

corpus = [
  ['1', 'Cargó', 'cargar', 'VMIS3S0'],
  ['2', 'el', 'el', 'DA0MS0'],
  ['3', 'camión', 'camión', 'NCMS000'],
  ['4', 'con', 'con', 'SP'],
  ['5', 'los', 'el', 'DA0MP0'],
  ['6', 'trastos', 'trasto', 'NCMP000'],
  ['7', 'más', 'más', 'RG'],
  ['8', 'pesados', 'pesado', 'AQ0MP00'],
]

print(Counter(x[3] for x in corpus))

计数器({'VMIS3S0':1,'DA0MS0':1,'NCMS000':1,'SP':1,'DA0MP0':1,'NCMP000':1,'RG':1,'AQ0MP00':1 })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM