如何用Python将一句话中一个单词前后的两个单词提取出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Python将一句话中一个单词前后的两个单词提取出来相关的知识,希望对你有一定的参考价值。

例如句子是“The Natural Protected Area Parque Nacional Bahia de Loreto, including five adjacent islands, was created in 1996.”定位到句子里有five,然后想要把including前(including)后(adjacent)的两个单提取出来。

可以用正则或者转化成列表后定位five的位置,然后切片取前后两个元素即可 参考技术A

参考技术B 取一个单词的首字母(假设单词是word),word[0:1]。取句子中所有的单词的首字母(假设句子是sentence) [word[0:1] for word in sentence.split()]

如何用 Python 列表中的内容替换字符串中找到的单词

【中文标题】如何用 Python 列表中的内容替换字符串中找到的单词【英文标题】:How to replace a word found in a string with what is in the list in Python 【发布时间】:2018-08-01 19:23:04 【问题描述】:

我的字符串如下:

word = "Continue: Lifetime Benefits in Running, Volume 1, Issue 1, February 2018"

我的清单是:

italic_list = ['Continue', ': Lifetime Benefits in Running', ' February 2018']

我想用列表中的内容更改字符串中找到的单词,并带有附加标签。

输出应该是这样的:

<p>
    <italic>Continue: Lifetime Benefits in Running</italic>, Volume 1, Issue 1, <italic>February 2018</italic>
</p>

这是我的代码:

word = "Continue: Lifetime Benefits in Running, Volume 1, Issue 1, February 2018"

italic_list = ['Continue', ': Lifetime Benefits in Running', ' February 2018']

ital = ''.join(italic_list)

if ital in word:
    word = word.replace(ital, "<italic>" + ital + "</italic>")

如果列表中的所有项目都在一个连续的单词中,则该代码将起作用。但是这个代码的问题是,如果有某个词没有与前一个项目一起成功。

我希望有更好的方法来解决这个问题。

非常感谢!

【问题讨论】:

欢迎来到 ***!到目前为止,您尝试过什么吗? *** 不是免费的代码编写服务,希望您能try to solve your own problem first。请更新您的问题以显示您已经尝试过的内容,并在minimal, complete, and verifiable example 中展示您面临的特定问题。欲了解更多信息,请参阅how to ask good questions,并拨打tour of the site 【参考方案1】:

不要加入。

它将列表元素合并为单个字符串。您有 3 个可以独立检查的短语。现在你有一个字符串。

您想要做的是检查是否有任何来自 italic_list 的短语一个接一个出现在输入字符串中。

在 python 中,您可以使用循环来做到这一点。只需遍历 italic_list,并为每个元素检查输入字符串中是否存在元素,如果存在,则将该部分替换为具有额外元素的部分。

【讨论】:

以上是关于如何用Python将一句话中一个单词前后的两个单词提取出来的主要内容,如果未能解决你的问题,请参考以下文章

如何用python统计单词的频率

如何用 Python 列表中的内容替换字符串中找到的单词

如何用 Sunspot 突出显示找到的单词?

如何为句子中的每个单词分组?

leetcode 884. 两句话中的不常见单词 (python)

如何将单独列中冒号前后的单词拆分为sql中的行