摆脱停用词和标点符号

2023-11-23

我正在与 NLTK 停用词作斗争。

这是我的代码..有人可以告诉我出了什么问题吗?

from nltk.corpus import stopwords

def removeStopwords( palabras ):
     return [ word for word in palabras if word not in stopwords.words('spanish') ]

palabras = ''' my text is here '''

您的问题是字符串的迭代器返回每个字符而不是每个单词。

例如:

>>> palabras = "Buenos dias"
>>> [c for c in palabras]
['B', 'u', 'e', 'n', 'a', 's', ' ', 'd', 'i', 'a', 's']

你需要迭代并检查每个单词,幸运的是 split 函数已经存在于 python 标准库中字符串模块。但是,您正在处理自然语言,包括标点符号,您应该看看here以获得更可靠的答案,使用re module.

一旦您有了单词列表,您应该在比较之前将它们全部小写,然后按照您已经显示的方式进行比较。

布埃纳苏尔特。

EDIT 1

好的,试试这个代码,它应该对你有用。它展示了两种方法,它们本质上是相同的,但第一种更清晰,而第二种更Pythonic。

import re
from nltk.corpus import stopwords

scentence = 'El problema del matrimonio es que se acaba todas las noches despues de hacer el amor, y hay que volver a reconstruirlo todas las mananas antes del desayuno.'

#We only want to work with lowercase for the comparisons
scentence = scentence.lower() 

#remove punctuation and split into seperate words
words = re.findall(r'\w+', scentence,flags = re.UNICODE | re.LOCALE) 

#This is the simple way to remove stop words
important_words=[]
for word in words:
    if word not in stopwords.words('spanish'):
        important_words.append(word)

print important_words

#This is the more pythonic way
important_words = filter(lambda x: x not in stopwords.words('spanish'), words)

print important_words 

我希望这可以帮助你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

摆脱停用词和标点符号 的相关文章

随机推荐

  • 致命错误:超出最大执行时间 300 秒

    我不断收到此 PHP 错误 致命错误 超出最大执行时间 300 秒 我尝试过设置我的max execution time and my max input timephp ini apache 和 cli 中的设置0 1 and 4000每
  • 模式匹配“返回”值

    为什么不可能链接模式匹配结构 例如 以下内容是合法的 如果是无意义的 val a ADT 5 val b a match case ADT a if a gt 4 gt ADT a 3 case ADT a gt ADT a 1 b mat
  • MySQL 事务与会计应用程序

    我有一个如下表 transaction id user id other user id trans type amount 该表用于维护金融类型应用程序的帐户交易 它采用复式记账法 因此从用户 A 到 B 的转账将在表中插入两行 如下所示
  • 地理坐标到街道名称

    是任何方式 与restAPI会很棒 来获取与地理坐标对应的街道名称 我认为这个名字是geocoding google有这个API吗 我是 PHP 开发人员 Ex 因此该函数的输出是街道名称 邮政编码和城市 感谢您提供任何帮助和脚本示例 是的
  • 函数侦听器无法启动。 Azure函数应用程序时间触发

    当我在本地环境中从 Visual Studio 运行 azure 函数时 出现以下错误 函数 Function1 的侦听器无法启动 Microsoft WindowsAzure Storage 错误请求 这是我的代码 using Syste
  • Vim - 如何使您自己的映射可重复?

    我的 vimrc 中有以下映射 nmap
  • 将自定义上下文菜单项添加到 Windows 窗体标题栏

    I found a threadMSDN 上展示了如何将项目添加到 Windows 窗体标题栏的上下文菜单 不幸的是 它没有显示如何使用自定义菜单项注册事件 我一直无法弄清楚如何做到这一点 下面是一个示例应用程序 可以将其复制并粘贴到新的
  • django - 如何交叉检查 ModelAdmin 及其内联?

    我有两个模型 ModelParent 和 ModelChild 在主题模型上具有相同的 m2m 字段 ModelChild 在 ModelParent 上有一个外键 并且 ModelChild 在管理页面上被定义为 ModelParent
  • 发布请求 Axios:网络错误

    我使用 NodeJS 作为后端 使用 ReactJS 作为前端 我请求 Axios 网络时遇到问题 我所有的 Get 请求都有效 但是Post请求不起作用 我只是遇到这个错误 网络错误 我创建了一个简单的网络服务来向您展示我的问题 Serv
  • jquery .click 函数的基本延迟

    我有最基本的 jquery 函数 但我无法在文档中找到一种方法来在 1500 毫秒后触发此单击函数的内容 masonryRecall click function mainContent masonry 附 刚刚注意到 delay 函数 j
  • python 中的站点包是什么?如果您不是 root,您可以安装/使用它们吗?

    我正在尝试安装lldb在 Linux 中到我系统上的主目录 我没有 root 访问权限 并且我在尝试创建子目录的步骤中遇到了问题 usr lib python2 6 site packages 我在 Makefile 中找到了设置此变量的行
  • 创建一个粘在 UITableView 底部的 UIView

    我有一个grouped UITableView我想在我的最底部添加一个 UIButtonUITableView 我正在使用 Storyboard 和 UITableViewController 我不太确定需要在哪里添加代码或拖 放 UI 元
  • 如何使用 json.net 设置 json 路径的值

    我正在尝试在 JSON 结构中设置任意路径 但我很难弄清楚如何执行简单的设置值 我想要的是像 SetValue path value 这样的方法 其操作类似于 SelectToken 但如果路径不存在则创建路径并设置值 public voi
  • Perl - 从输入字符串中获取第一个“单词”

    我正在尝试编写一个 Perl 程序 该程序从文本文件中读取行 并且对于每一行 从该行中提取第一个 单词 并根据返回的字符串执行不同的操作 主循环如下所示 while
  • 如何从特定版本的 Google Sheet 读取数据?

    我在互联网上找到了从最新版本的Google Sheet读取数据的代码示例 如下所示 SpreadsheetService service new SpreadsheetService Print Google Spreadsheet Dem
  • 将“new-row”的 DataGridViewImageColumn 中的“red-cross”替换为自定义图像

    如果您指定AllowUserToAddRows在winforms中DataGridView用户可以在网格中手动添加新行 现在我想在一列中添加一个图像按钮 该按钮也应该显示在新行中 但我无法让它显示图像 只显示红十字图像 就像没有找到一样 这
  • Spring自定义注解多字段验证

    这里有一个有点贪心的问题 希望这个问题也能帮助其他想了解更多注释验证的人 我目前正在学习Spring 目前 我计划尝试一下自定义注释验证 我查了很多 现在知道主要有两种验证 一种是用于控制器的 另一种是使用 Valid的注解方法 这是我的场
  • PHP 在所有请求中保留变量

    在某些语言 C 或 NET 中 这将是静态变量 但在 PHP 中 每次请求后都会清除内存 我希望该值在所有请求中持续存在 我不想 SESSION 因为每个用户的情况都不同 为了帮助解释这里有一个例子 我想要一个像这样的可以计数的脚本 无论哪
  • 在 File.Create 之后关闭文件[重复]

    这个问题在这里已经有答案了 我检查文件是否存在 if File Exists myPath File Create myPath 但是 当我去创建一个StreamReader使用这个新创建的文件 我收到一条错误消息 该进程无法访问文件 此处
  • 摆脱停用词和标点符号

    我正在与 NLTK 停用词作斗争 这是我的代码 有人可以告诉我出了什么问题吗 from nltk corpus import stopwords def removeStopwords palabras return word for wo