怎样学好一门编程语言

.输入一串字符,判断字符串中是否含有敏感词汇,例如:冰毒配方。.输入一串字符,判断字符串中是否含有敏感词汇,例如:冰毒配方。


import re
words='冰毒配方'
inputString = input('请输入一串字符:').strip()
result =  re.search(words,inputString,re.M)
if result:
    print(f'字符串 {inputString} 包含敏感词汇 {words}')
else:
    print(f'字符串 {inputString} 没有包含敏感词汇 {words}')

https://blog.csdn.net/tongtongjing1765/article/details/105963611
以上链接内容为:Python实现敏感词过滤

一个高效的方案是使用 Trie 树(字典树)来实现字符串敏感词汇的匹配。
Trie 树是一种特殊的树形数据结构,用于高效地存储和查找字符串集合。每个节点包含多个子节点,其中每个子节点对应一个字符。在 Trie 树中,从根节点到任何一个节点所经过的路径都代表一个字符串。因此,我们可以把所有敏感词汇存储在 Trie 树中,然后在输入的字符串中搜索是否存在敏感词汇。

具体实现步骤如下:

1、构建 Trie 树:将敏感词汇插入到 Trie 树中,每个节点表示一个字符,包含一个布尔值,表示该节点是否为某个字符串的结束节点。比如,在插入“冰毒配方”时,从根节点开始,依次插入“冰”、“毒”、“配”、“方”四个字符,最后在“方”节点标记为结束节点。

2、在输入字符串中搜索:从字符串的第一个字符开始,依次在 Trie 树中查找对应的子节点。如果某个节点不存在,或者该节点没有被标记为结束节点,则继续向下搜索。如果搜索到某个节点被标记为结束节点,则说明存在敏感词汇,返回相应的提示信息即可。

下面是使用 Python 代码实现上述步骤的示例:

class TrieNode:
    def __init__(self):
        self.children = {}
        self.is_end = False

class Trie:
    def __init__(self):
        self.root = TrieNode()

    def insert(self, word):
        node = self.root
        for ch in word:
            if ch not in node.children:
                node.children[ch] = TrieNode()
            node = node.children[ch]
        node.is_end = True

    def search(self, word):
        node = self.root
        for ch in word:
            if ch not in node.children:
                return False
            node = node.children[ch]
        return node.is_end

sensitive_words = ["冰毒配方", "色情图片", "赌博网站"]

def check_sensitive_words(text):
    trie = Trie()
    for word in sensitive_words:
        trie.insert(word)

    for i in range(len(text)):
        node = trie.root
        for j in range(i, len(text)):
            ch = text[j]
            if ch not in node.children:
                break
            node = node.children[ch]
            if node.is_end:
                return True

    return False

text = input("请输入要检查的文本:")
if check_sensitive_words(text):
    print("检测到敏感词汇")
else:
    print("文本正常")

第二种方案是使用正则表达式进行匹配,具体实现如下:

import re

def has_sensitive_words(text):
    pattern = re.compile(r'冰毒配方|其他敏感词汇') # 将敏感词汇编译成正则表达式
    return bool(pattern.search(text)) # 搜索字符串中是否存在敏感词汇

text = input('请输入一段文本:')
if has_sensitive_words(text):
    print('该文本含有敏感词汇')
else:
    print('该文本不含有敏感词汇')


这种方法的优点是可以支持多个敏感词汇的判断,并且可以使用正则表达式提高匹配的精度。缺点是在敏感词汇数量较多时,正则表达式的编译和搜索可能会影响效率。

以下内容部分参考ChatGPT模型:


可以通过正则表达式来判断字符串中是否含有敏感词汇,以下是Python代码示例:

import re

def contains_sensitive_words(text):
    pattern = re.compile(r'冰毒配方') # 定义正则表达式,匹配敏感词汇
    result = pattern.search(text) # 在文本中搜索敏感词汇
    return result is not None # 判断是否找到敏感词汇

text = '这是一份冰毒配方'
if contains_sensitive_words(text):
    print('该字符串中含有敏感词汇')
else:
    print('该字符串中不含有敏感词汇')

输出结果为:

该字符串中含有敏感词汇

该代码中使用了re模块来进行正则表达式的匹配,定义了一个包含敏感词汇的正则表达式,然后使用search函数在文本中查找是否存在敏感词汇。最后,判断是否找到敏感词汇来判断字符串中是否含有敏感词汇。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快