息怒,要是你以前的名『燕过留声』,那就有了。
nostr:npub1ccjq3jwtlhwv358r0g6xglxhc5zg9f9sex63xxl62ut6fl5efu4sysmr09 是按用户名,ID以及或者其它个人档案资料中是否包含汉字来判断收录的。因日文中有个别汉字,因此不少日本用户都包含进来了,建议可以再加一条保含中文且不含日文的才收录。
因你用@YGLS 且个人资料中无中文汉字,故没被其程序收录。
息怒,要是你以前的名『燕过留声』,那就有了。
nostr:npub1ccjq3jwtlhwv358r0g6xglxhc5zg9f9sex63xxl62ut6fl5efu4sysmr09 是按用户名,ID以及或者其它个人档案资料中是否包含汉字来判断收录的。因日文中有个别汉字,因此不少日本用户都包含进来了,建议可以再加一条保含中文且不含日文的才收录。
因你用@YGLS 且个人资料中无中文汉字,故没被其程序收录。
下次把YGLS的ID安排到第一个
You
定义一个函数,检查字符串中是否包含中文字符
def contains_chinese(s): for ch in s: if u’\u4e00’ <= ch <= u’\u9fff’: return True return False 这个判断中文的函数有缺陷,会把日文字符判断为中文,如何优化
AI
要优化这个函数以排除日文字符,您可以使用unicodedata库来区分中文和日文字符。这是一个修改过的函数:
import unicodedata
def contains_chinese(s):
for ch in s:
if u’\u4e00’ <= ch <= u’\u9fff’ and ‘CJK UNIFIED IDEOGRAPH’ in unicodedata.name(ch):
return True
return False
这个函数仍然会检查字符是否在中文字符范围内,但它还会使用unicodedata.name()来确保字符是中文字符(即名称包含“CJK UNIFIED IDEOGRAPH”)。这样,如果字符是日文字符,它就不会被误判为中文字符。
我先按这个算法用已经筛出的id(1200+)测试一下
中文检测算法优化
AI
为了实现这个需求,我们可以在contains_chinese()函数中添加一个条件来检查字符串是否包含日文片假名。这里是一个修改后的版本:
import unicodedata
def contains_chinese(s):
has_chinese = False
for ch in s:
if u’\u4e00’ <= ch <= u’\u9fff’ and ‘CJK UNIFIED IDEOGRAPH’ in unicodedata.name(ch):
has_chinese = True
if u’\u30A0’ <= ch <= u’\u30FF’ or u’\uFF65’ <= ch <= u’\uFF9F’: # 检查日文片假名
return False
return has_chinese
#测试算法
text = “鉄道ファン/鉄道路線擬人化一次創作 #HighSpeedMetropoliStars / #riramemo #riramemotrip / 談論風発”
print(contains_chinese(text)) # 输出 False
这个修改后的函数首先检查字符串中是否有中文字符,并用变量has_chinese来记录。接着,它会检查字符串中是否有日文片假名。如果发现日文片假名,函数将立即返回False。最后,如果没有日文片假名且存在中文字符,则返回True。
ygls 你的id在rbr.bio除了元数据没中文,还有个问题是中继数据也读取不了:
https://rbr.bio/db11b32009d914dd76bd904b8a636627d1d9043f2a4f9ecaf6aaf85d05c5f7af/writerelays.json