[{"data":1,"prerenderedAt":220},["ShallowReactive",2],{"project-43140154":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":69,"maker_in_thread":151,"shape":157,"grid":161,"attempts":183,"same_week":184,"maker_shows":34,"maker_hidden":212,"reader_version":213,"card":214},"43140154","Japanese City Name Generator","Using a Simple 3-Layer MLP","title","Show HN: Japanese City Name Generator – Using a Simple 3-Layer MLP","https:\u002F\u002Fcitygen.freemanjiang.com","citygen.freemanjiang.com","freemanjiang",1740240355,2025,26,11,1775,3837,47,"shown","ai","text generation model","web_app",[24,25,26,27,28],"japanese city names","name generator","mlp","onnx runtime","character-level model","debated",-0.059,{"positive":32,"neutral":32,"mixed":33,"critical":34},2,0,3,7,{"idea":37,"execution":38,"performance":40,"docs":41},{"positive":33,"critical":32},{"positive":33,"critical":39},1,{"positive":39,"critical":33},{"positive":39,"critical":33},[39,33,33,39,33,34,43,39,34,33,43],5,"I trained and deployed my first model: a Japanese city name generator using just a 3-layer MLP under the hood. It runs in the browser fully locally on the onnx runtime.\n\nTrained on \u003C2,000 real Japanese city names, what's interesting is that on this simple task the simple MLP performed better than more complex models which tended to overfit and generate existing names.",{"problem":46,"audience":52,"pricing":52,"motivation":53,"time_to_build":52,"stack":57,"openness":66,"stage":67,"team_size":68},{"value":47,"source":48,"evidence":49},"Generating plausible Japanese city names","maker",[50],{"id":51},"post",null,{"value":54,"source":48,"evidence":55},"Training and deploying a first model",[56],{"id":51},[58,62],{"value":59,"source":48,"evidence":60},"ONNX Runtime",[61],{"id":51},{"value":63,"source":48,"evidence":64},"3-layer MLP",[65],{"id":51},"unknown","launched","solo",{"praise":70,"objections":86,"requests":111,"questions":124,"alternatives":143},[71,79],{"value":72,"source":73,"evidence":74},"Generated a real place name (Kanegawa), seen as accurate","commenter",[75],{"id":76,"by":77,"text":78},"43142900","cedws","I got Kanegawa, which is a real place, so I'd say it's pretty accurate!",{"value":80,"source":73,"evidence":81},"Maker shared a tutorial request interest",[82],{"id":83,"by":84,"text":85},"43149050","neuraldenis","Can you please share a training tutorial? Thank you!",[87,98,105],{"value":88,"source":73,"evidence":89},"Output reads as random syllables without meaningful components",[90,94],{"id":91,"by":92,"text":93},"43145688","stuartcw","If you used the kanji names of the cities and towns it would be a lot more realistic. I’ve lived in Japan since 1988 and this just seems like a list of jibberish to me. Japanese…",{"id":95,"by":96,"text":97},"43145066","asukachikaru","Because Japanese words aren't simply a string of random characters, like a string of eight English alphabets doesn't suddenly make it meaningful city names such as Reading or…",{"value":99,"source":73,"evidence":100},"Uniform random kana sampling would work equally well",[101],{"id":102,"by":103,"text":104},"43143809","ranger_danger","I'm not sure why ML is even necessary? Practically every combination of characters (kana characters, where there's always a vowel at the end of each mora unless it's an \"n\") is…",{"value":106,"source":48,"evidence":107},"Trained on romanized kana, may produce illegal syllables",[108],{"id":109,"by":11,"text":110},"43144825","One thing is that this is trained on an English, character-level representation of kana characters, so it's possible it generates names that are not legal in the Japanese syllabary",[112,120],{"value":113,"source":73,"evidence":114},"Use kanji instead of romanized kana for tokenisation",[115,119],{"id":116,"by":117,"text":118},"43145033","RestartKernel","Have you tried approaching this with the kanji instead? That seems like free tokenisation.",{"id":91,"by":92,"text":93},{"value":121,"source":73,"evidence":122},"Share a training tutorial",[123],{"id":83,"by":84,"text":85},[125,132,139],{"value":126,"source":73,"evidence":127},"Whether generated names were already in the training set",[128],{"id":129,"by":130,"text":131},"43143415","fph","Maybe that name already was in the training set tho?",{"value":133,"source":73,"evidence":134},"How the name Kanegawa is spelled",[135],{"id":136,"by":137,"text":138},"43148570","ghfhghg","Can you spell it?",{"value":140,"source":73,"evidence":141},"Why ML is needed versus random kana selection",[142],{"id":102,"by":103,"text":104},[144],{"value":145,"source":73,"evidence":146},"jp-hash",[147],{"id":148,"by":149,"text":150},"43143064","kazinator","@freemanjiang, you might enjoy jp-hash: https:\u002F\u002Fwww.kylheku.com\u002Fcgit\u002Fjp-hash\u002Fabout\u002F",{"comments":32,"answered":39,"key":152},[153,156],{"id":154,"text":155},"43144867","Hmm I'm not convinced that uniform sampling from all possible kana characters necessarily leads to Japanese-sounding city names. I think the actual distribution does have a…",{"id":109,"text":110},{"commenters":158,"max_depth":32,"maker_replies":32,"first_comment_mins":159,"lifespan_hours":160},10,265,21,[162,164,166,168,169,171,173,175,176,178,181],[102,33,39,163,103,33],"project\u002Fcritical\u002Fidea",[154,33,33,165,11,39],"commenter\u002Fneutral\u002Fidea",[95,33,33,167,96,33],"commenter\u002Fcritical\u002Fidea",[91,39,39,163,92,33],[109,32,33,170,11,39],"project\u002Fcritical\u002Fexecution",[116,32,34,172,117,33],"maker\u002Fneutral\u002Fexecution",[76,34,43,174,77,33],"project\u002Fpositive\u002Fperformance",[129,34,39,170,130,33],[136,34,34,177,137,33],"project\u002Fneutral\u002Fnone",[148,179,33,180,149,33],4,"other\u002Fneutral\u002Fnone",[83,43,43,182,84,33],"maker\u002Fpositive\u002Fdocs",[],[185,190,195,200,204,208],{"id":186,"name":187,"points":188,"category":189},"43186406","Ballionaire",1581,"games",{"id":191,"name":192,"points":193,"category":194},"43158660","touchgrass.now",1203,"productivity",{"id":196,"name":197,"points":198,"category":199},"43120582","Sutro Tower Gaussian Splat",825,"creative",{"id":201,"name":202,"points":203,"category":20},"43121383","BadSeek",461,{"id":205,"name":206,"points":207,"category":189},"43183131","Breakout (roguelite)",412,{"id":209,"name":210,"points":211,"category":194},"43162340","corporate",392,false,"v2",{"id":215,"name":5,"line":6,"ai":212,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":216,"top":18,"kw":217,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":218,"url":9,"mix":219,"praise":72,"objection":88,"sub":21},43140154,-0.06,[24,25,26,27,28],"10010351305",[32,32,33,34],1794036670106]