为了账号安全,请及时绑定邮箱和手机立即绑定

AttributeError: 'list' 对象没有属性 'isdigit'。

AttributeError: 'list' 对象没有属性 'isdigit'。

qq_笑_17 2021-09-11 16:46:24
假设我有一个句子列表(在一个大型语料库中)作为标记词的集合。样本格式如下:tokenized_raw_data 的格式如下:[['arxiv', ':', 'astro-ph/9505066', '.'], ['seds', 'page', 'on', '``', 'globular', 'star', 'clusters', "''", 'douglas', 'scott', '``', 'independent', 'age', 'estimates', "''", 'krysstal', '``', 'the', 'scale', 'of', 'the', 'universe', "''", 'space', 'and', 'time', 'scaled', 'for', 'the', 'beginner', '.'], ['icosmos', ':', 'cosmology', 'calculator', '(', 'with', 'graph', 'generation', ')', 'the', 'expanding', 'universe', '(', 'american', 'institute', 'of', 'physics', ')']]我想申请pos_tag.到目前为止,我尝试过的内容如下。import os, nltk, refrom nltk.corpus import stopwordsfrom unidecode import unidecodefrom nltk.tokenize import word_tokenize, sent_tokenizefrom nltk.tag import pos_tagdef read_data():    global tokenized_raw_data    with open("path//merge_text_results_pu.txt", 'r', encoding='utf-8', errors = 'replace') as f:        raw_data = f.read()        tokenized_raw_data = '\n'.join(nltk.line_tokenize(raw_data))read_data()def function1():    tokens_sentences = sent_tokenize(tokenized_raw_data.lower())    unfiltered_tokens = [[word for word in word_tokenize(word)] for word in tokens_sentences]    tagged_tokens = nltk.pos_tag(unfiltered_tokens)    nouns = [word.encode('utf-8') for word,pos in tagged_tokens            if (pos == 'NN' or pos == 'NNP' or pos == 'NNS' or pos ==  'NNPS')]    joined_nouns_text = (' '.join(map(bytes.decode, nouns))).strip()    noun_tokens = [t for t in wordpunct_tokenize(joined_nouns_text)]    stop_words = set(stopwords.words("english"))function1()我收到以下错误。> AttributeError: 'list' object has no attribute 'isdigit'请帮助如何以高效的方式克服这个错误?我哪里出错了?注意:我在 Windows 10 上使用 Python 3.7。
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

尝试这个-


word_list=[]

for i in range(len(unfiltered_tokens)):

    word_list.append([])

for i in range(len(unfiltered_tokens)): 

    for word in unfiltered_tokens[i]:

        if word[1:].isalpha():

            word_list[i].append(word[1:]) 

然后在做之后


tagged_tokens=[]

for token in word_list:

    tagged_tokens.append(nltk.pos_tag(token))

你会得到你想要的结果!希望这有帮助。


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 605 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号