如何从字符串中提取主题标签?
How can I extract hashtags from string?
我需要从接收字符串的函数中提取“#”。
这是我所做的:
def hashtag(str):
lst = []
for i in str.split():
if i[0] == "#":
lst.append(i[1:])
return lst
我的代码确实有效,但它会拆分单词。因此对于示例字符串:"Python is #great #Computer#Science"
它将 return 列表:['great', 'Computer#Science']
而不是 ['great', 'Computer', 'Science']
.
请不要使用 RegEx。
您可以先尝试找到 #
出现的第一个索引,然后在 #
上拆分切片
text = 'Python is #great #Computer#Science'
text[text.find('#')+1:].split('#')
Out[214]: ['great ', 'Computer', 'Science']
你甚至可以用strip
最后去掉不需要的白色space。
[tag.strip() for tag in text[text.find('#')+1:].split('#')]
Out[215]: ['great', 'Computer', 'Science']
- 除以
#
- 拿走除第一个以外的所有标记
- 剥离空格
s = "Python is #great #Computer#Science"
out = [w.split()[0] for w in s.split('#')[1:]]
out
['great', 'Computer', 'Science']
拆分成单词,然后过滤以 octothorpe(哈希)开头的单词。
[word for word in str.replace("#", " #").split()
if word.startswith('#')
]
步骤是
- 在每个散列前面插入一个 space,以确保我们将它们分开
- 在 spaces
处拆分字符串
- 保留以哈希开头的单词。
结果:
['#great', '#Computer', '#Science']
当您使用默认分隔符 (space) 拆分字符串时,您会得到以下结果:
['Python', 'is', '#great', '#Computer#Science']
您可以在拆分前进行替换(在主题标签前添加 space)
def hashtag(str):
lst = []
str = str.replace('#', ' #')
for i in str.split():
if i[0] == "#":
lst.append(i[1:])
return lst
我需要从接收字符串的函数中提取“#”。 这是我所做的:
def hashtag(str):
lst = []
for i in str.split():
if i[0] == "#":
lst.append(i[1:])
return lst
我的代码确实有效,但它会拆分单词。因此对于示例字符串:"Python is #great #Computer#Science"
它将 return 列表:['great', 'Computer#Science']
而不是 ['great', 'Computer', 'Science']
.
请不要使用 RegEx。
您可以先尝试找到 #
出现的第一个索引,然后在 #
text = 'Python is #great #Computer#Science'
text[text.find('#')+1:].split('#')
Out[214]: ['great ', 'Computer', 'Science']
你甚至可以用strip
最后去掉不需要的白色space。
[tag.strip() for tag in text[text.find('#')+1:].split('#')]
Out[215]: ['great', 'Computer', 'Science']
- 除以
#
- 拿走除第一个以外的所有标记
- 剥离空格
s = "Python is #great #Computer#Science"
out = [w.split()[0] for w in s.split('#')[1:]]
out
['great', 'Computer', 'Science']
拆分成单词,然后过滤以 octothorpe(哈希)开头的单词。
[word for word in str.replace("#", " #").split()
if word.startswith('#')
]
步骤是
- 在每个散列前面插入一个 space,以确保我们将它们分开
- 在 spaces 处拆分字符串
- 保留以哈希开头的单词。
结果:
['#great', '#Computer', '#Science']
当您使用默认分隔符 (space) 拆分字符串时,您会得到以下结果:
['Python', 'is', '#great', '#Computer#Science']
您可以在拆分前进行替换(在主题标签前添加 space)
def hashtag(str):
lst = []
str = str.replace('#', ' #')
for i in str.split():
if i[0] == "#":
lst.append(i[1:])
return lst