【问题标题】:regular expressions emoticons正则表达式表情
【发布时间】:2013-08-19 11:19:41
【问题描述】:

我将数据拆分为文件 ID。我正在尝试遍历每个 fileid 的数据并搜索正则表达式定义的表情符号 :(:)。如果找到表情符号,我需要保留信息 a)找到表情符号 b)在此 fileid 中。当我运行这段脚本并打印表情符号字典时,我得到 0 作为值。这怎么可能?我是初学者。

emoticon = 0
for fileid in corpus.fileids():
    m = re.search('^(:\(|:\))+$', fileid)
    if m is not None:
        emoticon +=1

【问题讨论】:

    标签: python nltk


    【解决方案1】:

    在我看来,您的正则表达式正在运行,m 确实不应该是 None

    >>> re.search('^(:\(|:\))+$', ':)').group()
    ':)'
    >>> re.search('^(:\(|:\))+$', ':)').group()
    ':)'
    >>> re.search('^(:\(|:\))+$', ':):(').group()
    ':):('
    >>> re.search('^(:\(|:\))+$', ':)?:(').group()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'NoneType' object has no attribute 'group'
    

    但是,有几件事对我来说是有问题的。

    • 这只会匹配 100% 表情符号的字符串
    • fileid 真的是您要搜索的吗?

    【讨论】:

    • 我正在使用 NLTK 中的 fileid 函数。每个文件包含 1 个句子。所以我想检查每个文件 id 或句子中的表情符号。这不可能吗? O 并且我不想检查仅包含表情符号的字符串,我将不得不更改我的正则表达式。谢谢! :)
    • 我修正了我在使用 fileid 时犯的错误。
    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多