Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用正则表达式标记化的NLP词干分析和柠檬化_Python_Python 3.x_Nlp_Nltk - Fatal编程技术网

Python 使用正则表达式标记化的NLP词干分析和柠檬化

Python 使用正则表达式标记化的NLP词干分析和柠檬化,python,python-3.x,nlp,nltk,Python,Python 3.x,Nlp,Nltk,定义一个名为performStemAndLemma的函数,该函数接受一个参数。第一个参数textcontent是一个字符串。编辑器中给出了函数定义代码存根。执行以下指定任务: 1.标记textcontent中给出的所有单词。单词应该包含字母、数字或下划线。将标记化单词列表存储在标记化单词中。提示:使用regexp\u标记化 将所有单词转换成小写。将结果存储到变量tokenizedwords中 从唯一的tokenizedwords集中删除所有停止字。将结果存储到变量filteredwords中。提

定义一个名为performStemAndLemma的函数,该函数接受一个参数。第一个参数textcontent是一个字符串。编辑器中给出了函数定义代码存根。执行以下指定任务:

1.标记textcontent中给出的所有单词。单词应该包含字母、数字或下划线。将标记化单词列表存储在标记化单词中。提示:使用regexp\u标记化

将所有单词转换成小写。将结果存储到变量tokenizedwords中

从唯一的tokenizedwords集中删除所有停止字。将结果存储到变量filteredwords中。提示:使用stopwords语料库

使用PorterStemmer在filteredwords中为每个单词添加词干,并将结果存储在porterstemmedwords列表中

使用Lancaster词干分析器在filteredwords中为每个单词添加词干,并将结果存储在Lancaster词干字列表中

使用WordNetLemmatizer对filteredwords中的每个单词进行线性化,并将结果存储在列表lemmatizedwords中

从函数中返回porterstemmedwords、LancasterStemedWords、lemmatizedwords变量

我的代码:

from nltk.corpus import stopwords
def performStemAndLemma(textcontent):
    # Write your code here
    #Step 1
    tokenizedword = nltk.tokenize.regexp_tokenize(textcontent, pattern = '\w*', gaps = False)
    #Step 2
    tokenizedwords = [x.lower() for x in tokenizedword if x != '']
    #Step 3
    unique_tokenizedwords = set(tokenizedwords)
    stop_words = set(stopwords.words('english')) 
    filteredwords = []
    for x in unique_tokenizedwords:
        if x not in stop_words:
            filteredwords.append(x)
    #Steps 4, 5 , 6
    ps = nltk.stem.PorterStemmer()
    ls = nltk.stem.LancasterStemmer()
    wnl = nltk.stem.WordNetLemmatizer()
    porterstemmedwords =[]
    lancasterstemmedwords = []
    lemmatizedwords = []
    for x in filteredwords:
        porterstemmedwords.append(ps.stem(x))
        lancasterstemmedwords.append(ls.stem(x))
        lemmatizedwords.append(wnl.lemmatize(x))
    return porterstemmedwords, lancasterstemmedwords, lemmatizedwords
但该计划仍不能很好地发挥作用。未通过2个测试用例。突出显示上述代码中的错误,并提供相同的替代解决方案

def performStemAndLemma(textcontent):
    from nltk.corpus import stopwords
在如上定义函数后,只需导入stopwords。代码的其余部分保持不变


在如上定义函数后,只需导入stopwords。代码的其余部分保持不变。

实际上,预期输出是把大写和小写的单词看作分开的令牌。因此,在将所有单词转换为小写之前,应该先获取所有唯一的单词。我希望下面的代码可以工作

从nltk.corpus导入停止词 def performStemAndLemmatextcontent: 在这里编写代码 第一步 tokenizedword=nltk.regexp\u tokenizetextcontent,pattern=r'\w*',gaps=False 步骤2 tokenizedwords=[y代表tokenizedwords中的y,如果y!=] unique_tokenizedwords=settokenizedwords tokenizedwords=[x.在唯一的x中,x的值较低。\u如果x!=] 步骤3 unique_tokenizedwords=settokenizedwords stop_words=setstopwords.words'english' filteredwords=[] 对于标记化单词中的x: 如果x不在“停止”字中: filteredwords.appendx 步骤4、5、6 ps=nltk.stem.PorterStemmer ls=nltk.stem.LANCASTERSTEMM wnl=nltk.stem.WordNetLemmatizer porterstemmedwords=[] LancasterStemedWords=[] lemmatizedwords=[] 对于FilteredWord中的x: porterstemmedwords.appendps.stemx LancasterStemedWords.appendls.stemx lemmatizedwords.appendwnl.lemmatizex 返回porterstemmedwords、LancasterstemedWords、lemmatizedwords
实际上,预期的输出是把大写和小写的单词看作分开的令牌。因此,在将所有单词转换为小写之前,应该先获取所有唯一的单词。我希望下面的代码可以工作

从nltk.corpus导入停止词 def performStemAndLemmatextcontent: 在这里编写代码 第一步 tokenizedword=nltk.regexp\u tokenizetextcontent,pattern=r'\w*',gaps=False 步骤2 tokenizedwords=[y代表tokenizedwords中的y,如果y!=] unique_tokenizedwords=settokenizedwords tokenizedwords=[x.在唯一的x中,x的值较低。\u如果x!=] 步骤3 unique_tokenizedwords=settokenizedwords stop_words=setstopwords.words'english' filteredwords=[] 对于标记化单词中的x: 如果x不在“停止”字中: filteredwords.appendx 步骤4、5、6 ps=nltk.stem.PorterStemmer ls=nltk.stem.LANCASTERSTEMM wnl=nltk.stem.WordNetLemmatizer porterstemmedwords=[] LancasterStemedWords=[] lemmatizedwords=[] 对于FilteredWord中的x: porterstemmedwords.appendps.stemx LancasterStemedWords.appendls.stemx lemmatizedwords.appendwnl.lemmatizex 返回porterstemmedwords、LancasterstemedWords、lemmatizedwords
下面的方法为我清除了所有的测试用例

import re
from nltk.corpus import stopwords 
def performStemAndLemma(textcontent):
    # Write your code here
    lancaster = nltk.LancasterStemmer()
    porter = nltk.PorterStemmer()
    wnl = nltk.WordNetLemmatizer()
    tokens2_3 = nltk.regexp_tokenize(textcontent,  r'\w+')
    stop_words = set(stopwords.words('english'))
    tokenisedwords=[words for words in set(tokens2_3) if not words.lower() in  stop_words ]
    #print(tokenizedwords)
    return [porter.stem(word.lower()) for word in set(tokenisedwords)],[lancaster.stem(word.lower()) for word in set(tokenisedwords)],[wnl.lemmatize(word.lower()) for word in set(tokenisedwords)]

下面的方法为我清除了所有的测试用例

import re
from nltk.corpus import stopwords 
def performStemAndLemma(textcontent):
    # Write your code here
    lancaster = nltk.LancasterStemmer()
    porter = nltk.PorterStemmer()
    wnl = nltk.WordNetLemmatizer()
    tokens2_3 = nltk.regexp_tokenize(textcontent,  r'\w+')
    stop_words = set(stopwords.words('english'))
    tokenisedwords=[words for words in set(tokens2_3) if not words.lower() in  stop_words ]
    #print(tokenizedwords)
    return [porter.stem(word.lower()) for word in set(tokenisedwords)],[lancaster.stem(word.lower()) for word in set(tokenisedwords)],[wnl.lemmatize(word.lower()) for word in set(tokenisedwords)]
def performStemAndLemmatextcontent: 在这里编写代码 进口稀土 导入nltk 从nltk.corpus导入停止词 从nltk进口PorterStemmer、Lancaster Stemmer 模式=r'\w*' tokenizedwords=nltk.regexp_tokenizetextcontent,pattern,gaps=False tokenizedwords=[tokenizedwords中的单词对应单词如果单词!=] uniquetokenizedwords=settokenizedwords tokenizedwords=[words.lower用于uniquetokenizedwords中的单词,如果单词!=] stop_words=setstopwords.words'english' filteredwords=[如果单词不在stop_单词中,则在标记化单词中单词对应单词] porterstemmedwords=nltk.PorterStemmer porterstemmedwords=[porterstemmedwords.stemwords用于过滤词中的词] 兰卡斯特 ords=nltk.LANCASTER词干分析器 LancasterStemedWords=[filteredwords中单词的LancasterStemedWords.stemwords] wnl=nltk.WordNetLemmatizer lemmatizedwords=[wnl.lemmatizedwords中逐字过滤] 返回porterstemmedwords、LancasterstemedWords、lemmatizedwords def performStemAndLemmatextcontent: 在这里编写代码 进口稀土 导入nltk 从nltk.corpus导入停止词 从nltk进口PorterStemmer、Lancaster Stemmer 模式=r'\w*' tokenizedwords=nltk.regexp_tokenizetextcontent,pattern,gaps=False tokenizedwords=[tokenizedwords中的单词对应单词如果单词!=] uniquetokenizedwords=settokenizedwords tokenizedwords=[words.lower用于uniquetokenizedwords中的单词,如果单词!=] stop_words=setstopwords.words'english' filteredwords=[如果单词不在stop_单词中,则在标记化单词中单词对应单词] porterstemmedwords=nltk.PorterStemmer porterstemmedwords=[porterstemmedwords.stemwords用于过滤词中的词] Lancaster词干分析器=nltk.Lancaster词干分析器 LancasterStemedWords=[filteredwords中单词的LancasterStemedWords.stemwords] wnl=nltk.WordNetLemmatizer lemmatizedwords=[wnl.lemmatizedwords中逐字过滤] 返回porterstemmedwords、LancasterstemedWords、lemmatizedwords
请详细说明你的问题。失败的测试用例有哪些?哪一步失败了?输入:上周我无意中去看了See's Candy,当时我正在商场里找电话修理,结果发现,See's Candy现在收费一美元——一整美元——即使是最简单的小糖果。我买了两个巧克力棒棒糖和两个巧克力焦糖杏仁。总成本是4美元左右。我的意思是,这些糖果很好吃,但让我们说实话:一个士力架是50美分。在这一美元/糖果的披露之后,我可能不会很快发现自己在梦幻般地回到See的糖果中。我的输出:【杏仁】、【背】、【酒吧】、【买的】、【糖果】、【糖果】、【分】、【分】、【分】、【charg】、【巧克力】、【糖果】、【成本】、【美元】、【梦意】、【偶数】、【fifti】、【找到】、【四个】、【满的】、【inadvert】、【最后一个】、【让】、【棒棒糖】、【看】、【商场】、【五月】、【吝啬】、【报价】、【per】、【手机】、【真的】、【“,”很快“,”tasti“,”thing“,”time“,”total“,”turn“,”two“,”wander“,”wee“,”week“,”God“]Porter对o/p进行排序,并查看candi出现两次预期输出:【杏仁】、【背】、【酒吧】、【买来的】、【糖果】、【糖果】、【焦糖】、【分】、【charg】、【巧克力】、【糖果】、【成本】、【美元】、【梦幻力】、【偶数】、【fifti】、【找到】、【四个】、【满】、【inadvert】、【最后一个】、【让】、【棒棒糖】、【look】、【look】、【商场】、【五月】、【平均】、【报价】、【per】、【手机】、【真实】、【修理n、tasti、thing、time、total、turn、two、wander、wee、week、go']波特阻止o/p see candi出现三次问题与请说明您的问题相同。失败的测试用例是什么?哪一步失败?您期望得到什么输出?输入:上周我无意中去了see的糖果店,我在商场找电话维修,结果发现,see的糖果现在收费一美元——一个完整的dollar——即使是他们最简单的小甜点。我买了两个巧克力棒棒糖和两个巧克力焦糖杏仁东西。总成本是四块钱左右。我的意思是,这些糖果很好吃,而且都很好吃,但让我们现实一点:一个士力架是50美分。在这一美元一块糖果的披露之后,我可能不会发现自己在梦幻般地回到我的身边我的输出:【杏仁】、【背】、【酒吧】、【买的】、【糖果】、【糖果】、【分】、【分】、【分】、【charg】、【巧克力】、【糖果】、【成本】、【美元】、【梦意】、【偶数】、【fifti】、【找到】、【四个】、【满的】、【inadvert】、【最后一个】、【让】、【棒棒糖】、【看】、【商场】、【五月】、【吝啬】、【报价】、【per】、【手机】、【真的】、【“,”很快“,”tasti“,”thing“,”time“,”total“,”turn“,”two“,”wander“,”wee“,”week“,”God“]Porter对o/p进行排序,并查看candi出现两次预期输出:【杏仁】、【背】、【酒吧】、【买来的】、【糖果】、【糖果】、【焦糖】、【分】、【charg】、【巧克力】、【糖果】、【成本】、【美元】、【梦幻力】、【偶数】、【fifti】、【找到】、【四个】、【满】、【inadvert】、【最后一个】、【让】、【棒棒糖】、【look】、【look】、【商场】、【五月】、【平均】、【报价】、【per】、【手机】、【真实】、【修理n、tasti、thing、time、total、turn、two、wander、wee、wee、week、Goed.波特阻止o/p见candi出现三次问题与当时相同我没有任何想法我也不知道