import re
# 定义文本字符串常量,内容为3万字的文本
text = """
这里是你要输入的3万字文本内容...
edge-tts: error: unrecognized arguments: --lang zh-CN
~ $ edge-tts --list-voices
Name: af-ZA-AdriNeural
Gender: Female
Name: zh-CN-XiaoyiNeural
Gender: Female
Name: zh-CN-YunjianNeural
Gender: Male
Name: zh-CN-YunxiNeural
Gender: Male
Name: zh-CN-YunxiaNeural
Gender: Male
Name: zh-CN-YunyangNeural
Gender: Male
Name: zh-CN-liaoning-XiaobeiNeural
Gender: Female
Name: zh-CN-shaanxi-XiaoniNeural
Gender: Female
Name: zh-HK-HiuGaaiNeural
Gender: Female
Name: zh-HK-HiuMaanNeural
Gender: Female
Name: zh-HK-WanLungNeural
Gender: Male
Name: zh-TW-HsiaoChenNeural
Gender: Female
Name: zh-TW-HsiaoYuNeural
Gender: Female
Name: zh-TW-YunJheNeural
Gender: Male
Name: zu-ZA-ThandoNeural
Gender: Female
Name: zu-ZA-ThembaNeural
Gender: Male
"""
search_keywords = input("请输入检索关键字:")
search_gender = input("请输入要搜索的性别(可选项为:l/n):")
gender_dict = {
'l': 'male',
'n': 'female'
}
# 从文本中读取所有的name和gender信息,保存到一个字典中
neural_dict = {}
neural_regex = re.compile(r"Name:\s+(?P<name>.*?)\nGender:\s+(?P<gender>.*?)\n")
for match in neural_regex.finditer(text):
name = match.group("name")
gender = match.group("gender").lower()
neural_dict[name] = gender
# 移除任何包含特殊字符的搜索关键字
clean_search_keywords = re.sub('[^A-Za-z0-9 ]+', '', search_keywords)
# 构建模糊搜索正则表达式搜索模式
fuzzy_pattern = r'[^\n]*\b{}\b[^\n]*\.'.format(clean_search_keywords)
fuzzy_regex = re.compile(fuzzy_pattern)
# 搜索匹配项
fuzzy_match_results = fuzzy_regex.findall(text)
# 输出模糊搜索结果
if fuzzy_match_results:
print("以下为模糊搜索结果:")
for match in fuzzy_match_results:
match = match.strip()
if match not in neural_dict:
continue
gender = neural_dict[match]
if search_gender:
search_gender_lower = search_gender.lower()
if search_gender_lower not in gender_dict:
print("没有这个性别选项,请输入正确的性别选项(l/n)!")
break
if gender != gender_dict[search_gender_lower]:
continue
print(f"{match} {gender}")
else:
print("未找到模糊搜索结果。")
参考GPT和自己的思路:这段代码中可能出现问题的地方是在模糊搜索的正则表达式中,特别是在使用通配符“*”时。因为这里使用的是“*?”,表示匹配0个或多个通配符,而实际上正则表达式应该是“*”,表示匹配前面的字符0个或多个。如果修改成“*”,就能正确进行模糊搜索了。
参考GPT和自己的思路:这段代码实现了从一段文本中检索包含特定关键字的内容,并且根据性别进行筛选和输出。其中可能出现问题的地方包括:
\b
,如果输入的关键字中包含了特殊字符,可能会导致正则表达式错误。先查看python版本python -V
发现CentOS 自带python2.7.5
我们需要安装python3,在此选取版本3.6.5
yum install gcc
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
gunzip Python-3.6.5.tgz
tar -xvf Python-3.6.5.tar
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
cd Python-3.6.5
./configure --prefix=/usr/local/python36 --enable-optimizations
make && make install
ln -s /usr/local/python36/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python36/bin/pip3 /usr/bin/pip3
查看现在的python版本python3 --version
是3.6.5表明安装成功
再查看pip3版本pip3 --version
发现是9.0版本可以升级
升级到20.0pip3 install --upgrade pip3
查看当前版本是20.0.2
至此python环境配置完毕
针对你的问题,参考资料中并没有直接涉及到GPT3.5的使用,因此无法直接给出与此相关的解决方案。但是,根据你提供的问题描述,有可能是代码实现方面存在问题,需要进行调试和修改。下面给出一些可能有用的调试建议:
1.查看代码是否实现了正确的文本检索逻辑,比如使用正则表达式、字符串匹配等方式实现检索,或者使用一些现成的Python库或API,如re库、NLTK库、spaCy库、Google Natural Language API等。
2.检查你要检索的指定文字是否被正确地处理和传递到了代码中,比如是否将其作为参数传入了函数中,并正确地处理了大小写、空格、符号等问题。
3.查看代码中是否存在语法错误、逻辑错误或者代码格式等问题,比如缩进、注释、变量名等问题,可能会导致代码执行失败或者得到不正确的结果。
4.尝试增加一些调试信息,比如将中间结果打印出来,或者使用调试工具进行调试,比如pdb、pycharm、VS Code等,可以帮助你找到问题出现的具体位置,并进行相应的修改和调整。
如果你需要更具体的解决方案,建议提供更多的代码和相关信息,以便更好地了解问题所在。