python - 检查句子中的单词

标签 python utf-8

我用 Python 编写了一个程序。用户输入文本消息。需要检查该消息中是否存在单词序列。样本。消息:“世界你好,我的 friend 。”。检查这两个单词的顺序:“Hello”、“world”。结果是“真”。但是当检查消息中这些单词的顺序时:“你好,美丽的世界”,结果是“假”。当您需要检查是否仅存在两个单词时,这是可能的,就像我在代码中所做的那样,但是当 5 个或更多单词的组合时就很困难了。有什么小办法可以解决这个问题吗?

s=message.text
s=s.lower()
lst = s.split()
elif "hello" in lst and "world" in lst :
    if "hello" in lst:
        c=lst.index("hello")
    if lst[c+1]=="world" or lst[c-1]=="world":
        E=True
    else:
        E=False

最佳答案

最简单的方法是使用循环。将您的消息分成单独的单词,然后一般检查句子中的每个单词。

word_list = message.split()     # this gives you a list of words to find
word_found = True
for word in word_list:
    if word not in message2:
        word_found = False

print(word_found)

当且仅当在句子中找到所有单词时,word_found 标志为 True。有很多方法可以使这个过程更短、更快,特别是使用 all 运算符,并将单词列表作为内联表达式提供。

word_found = all(word in message2 for word in message.split())

现在,如果您需要将“找到的”属性限制为匹配确切的单词,则需要更多的预处理。上面的代码对子字符串过于宽容,例如查找“Are you OK ?”在“你的笑话只是勉强好笑”这句话中。对于限制性更强的情况,您应该将 message2 分解为单词,去掉这些单词的标点符号,将它们变为小写(以便更容易匹配),然后查找每个单词(来自 message)位于 message2 中的单词列表中。

你能从那里拿走它吗?

关于python - 检查句子中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55381690/

相关文章:

python - 值错误: No variables to optimize in GradientDescentOptimizer

python - 元组中的总和值(字典中的值)

Python 快速从 int 到 string 的转换

mongodb - 在 MongoDb 中导入 CSV 文件(包含一些非 UTF8 字符)

java - 如何处理来自 Google map 服务器的重音字符(如 République 中的 é)作为 Android 中的响应

python - 使用python将十六进制转为字符串

python - 从向量创建字符串

unicode - UTF-8:如何仅将 0-127 存储到单个字节中?

mysql - 为什么我的表的编码错误?

php - UTF-8贯穿始终