在python中,如何从没有空格的字符串中提取单词?

在python中,如何从没有空格的字符串中提取单词?,python,string,split,tweepy,textblob,Python,String,Split,Tweepy,Textblob,我对python还是有点陌生,所以我被困在一个问题上,我不知道如何解决这个特定的问题 所以我们有一个像“thingicool”或“thingicool”这样的字符串 现在我需要以某种方式列出一个类似于[这个,东西,是,酷]或[这个,东西,是,酷]的列表 目前,我正在使用textblob,但我不确定他们是否有这样的方式来做这样的事情 我的意思是,我下载了语料库(我猜这是一个单词列表),但没有看到任何识别乱码字符串中的单词和提取单词的功能。留下一个列表作为输出 因此,我想解决的问题是,至少能够用大写

我对python还是有点陌生,所以我被困在一个问题上,我不知道如何解决这个特定的问题

所以我们有一个像“thingicool”或“thingicool”这样的字符串

现在我需要以某种方式列出一个类似于[这个,东西,是,酷]或[这个,东西,是,酷]的列表

目前,我正在使用textblob,但我不确定他们是否有这样的方式来做这样的事情

我的意思是,我下载了语料库(我猜这是一个单词列表),但没有看到任何识别乱码字符串中的单词和提取单词的功能。留下一个列表作为输出

因此,我想解决的问题是,至少能够用大写字母拆分一个。然而,我不知道如何在python中实现这一点

所以问题是

  • 如何识别大写字母

  • 如何在不使用分隔符的情况下拆分它

  • textblob中是否有已经执行此操作的内容


  • 谢谢

    使用
    re
    模块

    >>> a = 'ThisThingIsCool'
    >>> import re
    >>> re.findall(r'[A-Z][a-z]*', a)
    ['This', 'Thing', 'Is', 'Cool']
    >>> [i.lower() for i in re.findall(r'[A-Z][a-z]*', a)]
    ['this', 'thing', 'is', 'cool']
    >>> list(map(str.lower, re.findall(r'[A-Z][a-z]*', a)))
    ['this', 'thing', 'is', 'cool']
    

    使用
    re
    模块

    >>> a = 'ThisThingIsCool'
    >>> import re
    >>> re.findall(r'[A-Z][a-z]*', a)
    ['This', 'Thing', 'Is', 'Cool']
    >>> [i.lower() for i in re.findall(r'[A-Z][a-z]*', a)]
    ['this', 'thing', 'is', 'cool']
    >>> list(map(str.lower, re.findall(r'[A-Z][a-z]*', a)))
    ['this', 'thing', 'is', 'cool']
    

    使用正则表达式,按大写字母拆分相当容易:

    s = "ThisThingIsCool"
    re.findall(r'[A-Z][^A-Z]*', s)
    #['This', 'Thing', 'Is', 'Cool']
    

    一般的解决方案要困难得多,可能需要动态规划。

    使用正则表达式按大写字母拆分相当容易:

    s = "ThisThingIsCool"
    re.findall(r'[A-Z][^A-Z]*', s)
    #['This', 'Thing', 'Is', 'Cool']
    

    通用解决方案要困难得多,可能需要动态编程。

    使用
    ^
    而不是显式指定每个正则表达式,使解决方案更通用!使用
    ^
    而不是显式指定每个正则表达式使解决方案更通用!您的解决方案忽略了一个字母的单词和可能的非字母字符。您的解决方案忽略了一个字母的单词和可能的非字母字符。您的问题很难轻松解决,例如,您如何处理
    adultsexchange
    -
    [成年人,交换]
    ['成人','sex','change']
    ?查看您的要求很难轻松完成,例如,您如何处理
    成人性改变
    -
    [成人,交换]
    [“成人”,“性”,“改变”]
    ?查看