Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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 如何将句子拆分成单词(有例外)_Python - Fatal编程技术网

Python 如何将句子拆分成单词(有例外)

Python 如何将句子拆分成单词(有例外),python,Python,我正在做一个文本分类项目,我需要把一个句子分成几个单词,这样我就可以计算出它是正的还是负的概率。 问题是单词“not”,当它出现时,它会将原本认为是肯定的句子改为否定的句子,但我的系统仍然将句子归类为肯定的,这使它出错 我的想法是找到一种将句子拆分成单词的方法,除了“not” 例如,“她不漂亮” 而不是“她”、“是”、“不是”、“漂亮” 我想得到“她”、“是”、“不漂亮”你可以对单词“不” 重新导入 mystr=“她不漂亮” 关于split((?您也可以尝试 将文本拆分为“not” 获取新列表中

我正在做一个文本分类项目,我需要把一个句子分成几个单词,这样我就可以计算出它是正的还是负的概率。 问题是单词
“not”
,当它出现时,它会将原本认为是肯定的句子改为否定的句子,但我的系统仍然将句子归类为肯定的,这使它出错

我的想法是找到一种将句子拆分成单词的方法,除了
“not”

例如,
“她不漂亮”

而不是“她”、“是”、“不是”、“漂亮”

我想得到
“她”、“是”、“不漂亮”

你可以对单词
“不”

重新导入
mystr=“她不漂亮”
关于split((?您也可以尝试

  • 将文本拆分为“not”

  • 获取新列表中的第一个元素并将其拆分,然后将其添加到另一个要返回的列表中

  • 对于步骤1中列表的其他元素,我们拆分每个项目,并将not添加到第一个项目中


  • 虽然like正则表达式是一种方法。

    如果在
    not
    之后有多个单词,那么情况如何。例如
    她不是一个漂亮的人,也很好
    import re
    mystr = "she is not beautiful"
    re.split("(?<!not)\s", mystr)
    #['she', 'is', 'not beautiful']
    
    def my_seperator(text):
        text = text.strip()
        my_text = []
        text = text.split('not')
        my_text = my_text + text[0].split()
        for t in text[1:]:
            temp_text = t.split()
            my_text.append('not '+temp_text[0])
            my_text = my_text+temp_text[1:]
        return my_text
    
    
    >>> my_seperator('she is not beautiful . but not that she is ugly. Maybe she is not my type')
    ['she', 'is', 'not beautiful', '.', 'but', 'not that', 'she', 'is', 'ugly.', 'Maybe', 'she', 'is', 'not my', 'type']