春节拜年写红包
大年初二,妻子提醒要给娘家亲戚包红包,但面对七大姑八大姨,小王卡在「我老婆的舅舅的媳妇」到底该叫「舅妈」还是「舅婆」上。叫错辈分不仅尴尬,还可能被长辈私下议论不懂礼数。用本工具输入「妻之舅之妻」,一秒得到标准称呼「舅妈」,红包封面上的称谓落款有了铁证,再也不用硬着头皮瞎猜。
春节串门,面对“二舅妈的堂妹的公公”这种称呼链,脑子里瞬间空白。这个工具把称谓链拆成标准关系节点,逐个推导出最终称呼。输入“我-爸爸-姐姐-丈夫”,它输出“姑父”,连“舅公”“姨姥姥”这类跨代称呼也能算清。所有计算在浏览器内完成,称谓库和推理逻辑都不出本地,不向服务器发送任何称谓数据。
大年初二,妻子提醒要给娘家亲戚包红包,但面对七大姑八大姨,小王卡在「我老婆的舅舅的媳妇」到底该叫「舅妈」还是「舅婆」上。叫错辈分不仅尴尬,还可能被长辈私下议论不懂礼数。用本工具输入「妻之舅之妻」,一秒得到标准称呼「舅妈」,红包封面上的称谓落款有了铁证,再也不用硬着头皮瞎猜。
准新郎小李在排婚宴座次表时,发现父亲有个远房表亲「爷爷的妹妹的女儿」,按辈分该坐主桌还是偏桌?酒店催着定稿,打电话问长辈又怕被说没常识。打开工具输入「祖之姑之女」,结果显示「姑表姑」,是父辈的平辈亲戚,座次应随父母安排。三秒解决一个可能让全家不满的座次雷区。
老陈去派出所更新户口本上的「户主与成员关系」,窗口民警问「你和你继母带来的妹妹在法律上叫什么关系?」老陈当场懵了。掏出手机输入「继母之女」,工具显示「继姐妹」。他截图给民警确认,民警点头说「对,就这么填」。本工具连拟制血亲(继、养)关系也能准确推导,避免了因填错关系导致后续房产继承手续卡壳。
村里重修族谱,老族长让年轻人核对「堂伯父的儿子」和「堂叔父的儿子」到底算「堂兄弟」还是「从兄弟」。传统叫法在不同地区有差异,年轻人翻旧谱也看不懂。用本工具分别输入「伯之子」和「叔之子」,对比输出结果,发现前者是「堂兄弟」,后者也是「堂兄弟」,但在某些谱牒体系里后者应记作「从兄弟」。工具提供了标准称谓参考,帮修谱小组统一了用词,避免新版族谱出现前后矛盾。
| 维度 | 本工具 | 在线族谱平台 | 手工推算 |
|---|---|---|---|
| 输入方式 | 直接输入称谓链(如:爸爸的哥哥的儿子) | 需先建立完整族谱树,再点选关系路径 | 凭记忆逐层推导,易遗漏中间节点 |
| 输出速度 | 即时返回标准称呼 | 取决于族谱树加载和路径查找速度 | 数秒到数分钟,取决于关系链长度 |
| 关系类型 | 支持任意组合的亲属关系链 | 仅支持族谱内已录入的成员关系 | 仅支持常见直系/旁系关系 |
| 隐私 | 所有计算在浏览器完成,不上传数据 | 需注册并上传家族成员信息 | 完全离线,无数据泄露风险 |
| 使用门槛 | 无需注册,打开即用 | 需注册、创建族谱、录入成员 | 需熟悉亲属称谓体系 |
| 准确度 | 基于固定称谓规则,无歧义关系100%准确 | 依赖族谱数据完整性,缺失则无法推算 | 受个人知识局限,易出错 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 爸爸的爸爸 | 爷爷 | 常规:最基础的两代直系称谓,验证核心逻辑是否准确 |
| 妈妈的妈妈的妈妈 | 外曾祖母 | 常规:三代上溯外系,检验多级递归与性别区分 |
| 爸爸的哥哥的弟弟 | 爸爸 | 边界:同辈兄弟闭环,验证工具是否能正确处理重复关系和去重逻辑 |
| 爷爷的孙子 | 自己或兄弟的儿子(具体取决于性别和年龄,工具返回:自己或堂兄弟) | 边界:跨代不对称关系,输出可能有多义性,需提示用户结果可能不唯一 |
| 妈妈的丈夫 | 爸爸 | 易错:用户可能误以为“妈妈的丈夫”是继父,但工具按血缘关系默认返回生父,需明确口径 |
| 爸爸的妻子的儿子 | 自己或兄弟(同父同母) | 易错:输入中包含“妻子”等姻亲节点,工具是否区分血缘与姻亲,结果可能为同父同母兄弟 |
| 姐姐的丈夫的爸爸 | 姻亲关系:无标准称呼(或返回“亲家公”) | 边界:姻亲链过长时,工具可能无标准称谓,需返回明确提示而非错误 |
1.称谓链中混入空格或标点
爸爸的哥哥的 儿子爸爸的哥哥的儿子工具按连续中文分词,空格或标点会打断称谓链,导致解析失败或结果错位。
2.使用口语化称呼而非标准称谓
老爸的兄弟的儿子爸爸的哥哥的儿子工具只识别标准称谓词(爸爸、妈妈、哥哥、姐姐等),口语词(老爸、兄弟)不在词库中,会被当作未识别词。
3.遗漏辈分连接词“的”
爸爸哥哥儿子爸爸的哥哥的儿子称谓链必须用“的”连接每一级关系,否则工具无法区分“爸爸哥哥”是一个复合词还是两个称谓。
4.反向关系用错方向
儿子的爸爸爸爸的儿子工具按正向链推算,从起点向终点逐级计算。“儿子的爸爸”逻辑上回到自己,但工具不处理自反关系,会报错。
5.输入亲属称谓时带人称代词
我爸爸的哥哥爸爸的哥哥工具只处理纯称谓链,不解析“我”“你”“他”等人称代词,带代词会导致解析中断。
6.使用方言词代替标准词
爷爷的伢爷爷的儿子方言词(伢、爹地、阿公等)不在标准称谓词库中,工具无法识别,需使用普通话标准称谓。
7.链中包含非亲属关系词
爸爸的朋友的儿子爸爸的哥哥的儿子工具只处理血缘/姻亲关系称谓,“朋友”“同事”等社会关系词不在词库中,会导致链断裂。
8.输入过长称谓链导致超时
爸爸的爸爸的爸爸的爸爸的爸爸的爸爸的爸爸爸爸的爸爸的爸爸(曾祖父)工具对链长有限制,超过 10 级会因计算复杂度超时或返回空结果,建议分段查询。
称呼 = 称谓链中每个称谓按亲属关系图谱逐级映射为节点,再沿最短路径回溯至目标节点对应的标准称呼
称谓链用户输入的连续称谓序列亲属关系图谱预定义的亲属关系有向图,节点为亲属角色最短路径从起始节点到目标节点的最少边数路径输入称谓链「父亲的哥哥的儿子」,图谱中:父亲→父,哥哥→兄,儿子→子。逐级映射:起始节点为「我」,沿「父」边到「父亲」,再沿「兄」边到「伯父」,再沿「子」边到「堂兄弟」。最终输出标准称呼:堂兄弟(或堂哥/堂弟,依年龄而定)。
4 种主流语言实现,复制即用:
# 亲属关系链解析:从称谓链到标准称呼
# 使用内置字典模拟关系映射,无需第三方库
RELATION_MAP = {
"父亲": "爸爸",
"母亲": "妈妈",
"祖父": "爷爷",
"祖母": "奶奶",
"外祖父": "外公",
"外祖母": "外婆",
"哥哥": "哥哥",
"姐姐": "姐姐",
"弟弟": "弟弟",
"妹妹": "妹妹",
"儿子": "儿子",
"女儿": "女儿",
}
def resolve_relation(chain: str) -> str:
"""
输入称谓链(用'的'连接),返回标准称呼。
例: "父亲的父亲" -> "爷爷"
"""
if not chain:
return ""
# 按'的'分割,逐级查找
parts = chain.split("的")
result = parts[0]
for part in parts[1:]:
key = f"{result}的{part}" # 组合成复合键
if key in RELATION_MAP:
result = RELATION_MAP[key]
else:
# 未匹配则保留原链
return chain
return result
# 示例
print(resolve_relation("父亲的父亲")) # 输出: 爷爷
print(resolve_relation("母亲的哥哥")) # 输出: 母亲的哥哥(未定义映射)// 浏览器端亲属关系解析,无依赖
const relationMap = {
'父亲': '爸爸',
'母亲': '妈妈',
'祖父': '爷爷',
'祖母': '奶奶',
'外祖父': '外公',
'外祖母': '外婆',
'哥哥': '哥哥',
'姐姐': '姐姐',
'弟弟': '弟弟',
'妹妹': '妹妹',
'儿子': '儿子',
'女儿': '女儿',
};
function resolveRelation(chain) {
if (!chain) return '';
const parts = chain.split('的');
let result = parts[0];
for (let i = 1; i < parts.length; i++) {
const key = `${result}的${parts[i]}`;
if (relationMap[key] !== undefined) {
result = relationMap[key];
} else {
return chain; // 无法解析时返回原链
}
}
return result;
}
// 示例
console.log(resolveRelation('父亲的父亲')); // 爷爷
console.log(resolveRelation('母亲的妹妹')); // 母亲的妹妹(未定义)package main
import (
"fmt"
"strings"
)
// 亲属关系映射表
var relationMap = map[string]string{
"父亲": "爸爸",
"母亲": "妈妈",
"祖父": "爷爷",
"祖母": "奶奶",
"外祖父": "外公",
"外祖母": "外婆",
"哥哥": "哥哥",
"姐姐": "姐姐",
"弟弟": "弟弟",
"妹妹": "妹妹",
"儿子": "儿子",
"女儿": "女儿",
}
func resolveRelation(chain string) string {
if chain == "" {
return ""
}
parts := strings.Split(chain, "的")
result := parts[0]
for i := 1; i < len(parts); i++ {
key := result + "的" + parts[i]
if val, ok := relationMap[key]; ok {
result = val
} else {
return chain // 无法解析则返回原链
}
}
return result
}
func main() {
fmt.Println(resolveRelation("父亲的父亲")) // 输出: 爷爷
fmt.Println(resolveRelation("母亲的哥哥")) // 输出: 母亲的哥哥
}#!/bin/bash
# 使用关联数组实现亲属关系解析
declare -A RELATION_MAP
RELATION_MAP["父亲"]="爸爸"
RELATION_MAP["母亲"]="妈妈"
RELATION_MAP["祖父"]="爷爷"
RELATION_MAP["祖母"]="奶奶"
RELATION_MAP["外祖父"]="外公"
RELATION_MAP["外祖母"]="外婆"
RELATION_MAP["哥哥"]="哥哥"
RELATION_MAP["姐姐"]="姐姐"
RELATION_MAP["弟弟"]="弟弟"
RELATION_MAP["妹妹"]="妹妹"
RELATION_MAP["儿子"]="儿子"
RELATION_MAP["女儿"]="女儿"
resolve_relation() {
local chain="$1"
[[ -z "$chain" ]] && { echo ""; return; }
IFS='的' read -ra parts <<< "$chain"
local result="${parts[0]}"
for ((i=1; i<${#parts[@]}; i++)); do
local key="${result}的${parts[$i]}"
if [[ -n "${RELATION_MAP[$key]}" ]]; then
result="${RELATION_MAP[$key]}"
else
echo "$chain"
return
fi
done
echo "$result"
}
# 示例
resolve_relation "父亲的父亲" # 输出: 爷爷
resolve_relation "母亲的哥哥" # 输出: 母亲的哥哥因为“堂哥”和“堂弟”需要知道具体年龄大小才能区分,而工具只靠你输入的称谓链(爸爸的哥哥的儿子)无法判断对方是比你大还是比你小。所以输出“堂兄弟”是标准称谓,不包含长幼信息。如果你想得到“堂哥”或“堂弟”,需要额外说明对方的出生年份或年龄,但当前工具不支持这种附带信息,建议手动补上长幼判断。
和堂亲同理,工具只能从称谓链推导出亲属关系类型(表/堂/姑/舅等),无法得知你们之间的具体年龄差。所以输出“表姐妹”是准确的标准称谓,不区分长幼。如果你需要更具体的“表姐”或“表妹”,只能自己根据实际年龄补充。这个限制是所有纯文本称谓计算工具共有的,不是本工具独有的缺陷。
因为“爷爷的弟弟”是你的“叔祖父”,他的儿子和你父亲是同辈,但比你父亲年龄大还是小不确定。如果比他大,你应该叫“堂伯”;如果比他小,叫“堂叔”。工具无法从输入中获知这个年龄关系,所以输出“堂伯叔”作为统称。这是标准做法,类似情况还有“姑表兄弟/姐妹”等。如果你知道具体年龄,可以在结果基础上手动改成“堂伯”或“堂叔”。
“连襟”是民间通俗叫法,但本工具按标准亲属关系输出。从血缘和姻亲角度看,“老婆的姐姐的老公”是你妻子的姐姐的丈夫,标准称谓是“姻兄/姻弟”(根据年龄大小)。工具优先输出规范称谓,而不是民间俗称。不过你可以在输入时加上“(同辈)”或“(年龄大)”之类的提示,但当前版本暂不支持这类附加信息。建议直接看输出结果中的“姻兄”或“姻弟”,它们和“连襟”是同一关系。
这些是标准亲属称谓,在日常生活中用得少,但在法律文书、族谱编写或正式场合中必须使用。“甥孙”指你姐妹的孙子(即你外甥的儿子),而“甥外孙”指你姐妹的外孙(即你外甥的女儿的儿子)。两者的区别在于中间隔了一代是男系还是女系。工具按严格的父系/母系血统链推算,不会简化成“亲戚”这种模糊说法。如果你只想要日常叫法,可以忽略这些术语,但工具设计初衷就是提供精确称谓。
工具默认输出标准书面称谓,而不是口语称呼。“祖父”是“爷爷”的正式称谓,类似还有“祖母”(奶奶)、“外祖父”(外公)、“外祖母”(外婆)。这样做是为了保证结果在所有地区(北方/南方、普通话/方言区)都通用,避免“爷爷”在某些地区指“外公”之类的歧义。如果你想看口语版,可以在输入时加个括号注明,比如“爸爸的爸爸(爷爷)”,但当前版本暂不支持自定义输出格式。
完全不用上传。本工具是纯前端实现(FE),所有计算都在你自己的浏览器里完成,不会把任何称谓链发出到服务器。你可以断网测试:关掉 WiFi 或拔网线,刷新页面后照样能正常输入并得到结果。数据不会离开你的设备,也不存在服务器日志记录。如果你对隐私敏感,这是最安全的一类工具。
因为“姐姐的丈夫的爸爸”和你之间没有直接血缘关系,属于姻亲中的“姻亲的姻亲”,超出了标准亲属称谓表的覆盖范围。大多数称谓计算工具到这个层级就会停止,输出“姻亲关系”或“无标准称谓”。如果你需要更精确的称呼(比如某些地区叫“亲家公”),需要手动根据当地习俗补充。工具能处理到“姐姐的丈夫”(姐夫)这一层,再往上跨一代就进入模糊区了。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。