gpt4 book ai didi

python - 按多个单词的标签拆分的术语

转载 作者:行者123 更新时间:2023-11-28 22:52:22 26 4
gpt4 key购买 nike

我正在尝试拆分一个包含多个单词标签的术语,例如“#I-am-great”或“#awesome-dayofmylife”
那么我正在寻找的输出是:

 I am great
awesome day of my life

我所能做到的是:

 >>> import re
>>> name = "big #awesome-dayofmylife because #iamgreat"
>>> name = re.sub(r'#([^\s]+)', r'\1', name)
>>> print name
big awesome-dayofmylife because iamgreat

如果有人问我是否有可能的单词列表,那么答案是“否”,所以如果我能得到这方面的指导那就太好了。有 NLP 专家吗?

最佳答案

当然,以上所有评论员都是正确的:单词之间没有空格或其他明确分隔符的主题标签(尤其是英语)通常是模棱两可的,无法在所有情况下都被正确解析。

然而,单词列表的想法实现起来相当简单,并且可能会产生有用的(尽管有时是错误的)结果,所以我实现了一个快速版本:

wordList = '''awesome day of my life because i am great something some
thing things unclear sun clear'''.split()

wordOr = '|'.join(wordList)

def splitHashTag(hashTag):
for wordSequence in re.findall('(?:' + wordOr + ')+', hashTag):
print ':', wordSequence
for word in re.findall(wordOr, wordSequence):
print word,
print

for hashTag in '''awesome-dayofmylife iamgreat something
somethingsunclear'''.split():
print '###', hashTag
splitHashTag(hashTag)

这打印:

### awesome-dayofmylife
: awesome
awesome
: dayofmylife
day of my life
### iamgreat
: iamgreat
i am great
### something
: something
something
### somethingsunclear
: somethingsunclear
something sun clear

如你所见,它落入了 qstebom 为它设置的陷阱 ;-)

编辑:

上面代码的一些解释:

变量 wordOr 包含所有单词的字符串,由管道符号 (|) 分隔。在正则表达式中表示“这些词之一”。

第一个 findall 得到一个模式,意思是“一个或多个这些词的序列”,所以它匹配诸如“dayofmylife”之类的东西。 findall 找到所有这些序列,因此我对它们进行迭代(for wordSequence in …)。对于每个单词序列,然后我搜索序列中的每个单词(也使用 findall)并打印该单词。

关于python - 按多个单词的标签拆分的术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com