{"id":6013,"date":"2025-09-18T14:28:02","date_gmt":"2025-09-18T14:28:02","guid":{"rendered":"https:\/\/pokecon.jp\/job\/?p=6013"},"modified":"2025-09-18T14:28:02","modified_gmt":"2025-09-18T14:28:02","slug":"snowflake%e3%81%ab%e3%81%a6%e6%96%87%e7%ab%a0%e3%81%ae%e9%a1%9e%e4%bc%bc%e5%ba%a6%e3%82%92%e6%b8%ac%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab%e4%bd%bf%e3%81%86%e6%8a%80%e8%a1%93%e3%80%90frosty-friday-week69","status":"publish","type":"post","link":"https:\/\/pokecon.jp\/job\/6013\/","title":{"rendered":"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011"},"content":{"rendered":"\n<\/p>\n<div>\n<p data-line=\"0\" class=\"code-line\">\u30c7\u30fc\u30bf\u30a8\u30f3\u30b8\u30cb\u30a2\u306ekoreeda\u3067\u3059\u3002<br \/>Frosty Friday\u306b\u51fa\u6f14\u3059\u308b\u6a5f\u4f1a\u3092\u9802\u304d\u307e\u3057\u305f\u3002\u79c1\u304c\u4eca\u56de\u30c1\u30e3\u30ec\u30f3\u30b8\u3059\u308b\u554f\u984c\u306f\u3001<a target=\"_blank\" href=\"https:\/\/frostyfriday.org\/blog\/2023\/10\/27\/week-69-intermediate\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Week 69<\/a>\u3067\u3059\u3002<\/p>\n<p data-line=\"3\" class=\"code-line\"><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/ac3dcba8417f-20250918.png\" class=\"md-img\" loading=\"lazy\"\/><\/p>\n<p data-line=\"5\" class=\"code-line\">\u554f\u984c\u306e\u8da3\u65e8\u3092\u7c21\u5358\u306b\u8aac\u660e\u3059\u308b\u3068\u3001\u300c\uff12\u3064\u306e\u30ab\u30e9\u30e0\u306e\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u30b9\u30b3\u30a2\u3067\u8868\u3057\u3066\u304f\u3060\u3055\u3044\u300d\u3068\u3044\u3046\u3068\u3053\u308d\u306b\u96c6\u7d04\u3059\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u65b9\u6cd5\u306f\u3001\u6628\u4eca\u306e\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u306a\u3069\u3067\u3082\u30c8\u30ec\u30f3\u30c9\u306a\u6280\u8853\u9818\u57df\u3067\u69d8\u3005\u306a\u89e3\u6cd5\u304c\u8003\u3048\u3089\u308c\u307e\u3059\u3002\u8272\u3005\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u306b\u30c1\u30e3\u30ec\u30f3\u30b8\u3057\u3066\u307f\u305f\u306e\u3067\u307e\u3068\u3081\u3066\u307f\u307e\u3059\u3002<\/p>\n<h2 id=\"%E5%89%8D%E6%BA%96%E5%82%99\" data-line=\"7\" class=\"code-line\">\n \u524d\u6e96\u5099<\/h2>\n<details>\n<summary>\u524d\u6e96\u5099<\/summary>\n<div class=\"details-content\">\n<div class=\"code-block-container\">\n<pre><code class=\"code-line\" data-line=\"9\">CREATE OR REPLACE TABLE sentence_comparison(sentence_1 VARCHAR, sentence_2 VARCHAR);\n\nINSERT INTO sentence_comparison (sentence_1, sentence_2) VALUES\n('The cat sat on the', 'The cat sat on thee'),\n('Rainbows appear after rain', 'Rainbows appears after rain'),\n('She loves chocolate chip cookies', 'She love chocolate chip cookies'),\n('Birds fly high in the', 'Birds flies high in the'),\n('The sun sets in the', 'The sun set in the'),\n('I really like that song', 'I really liked that song'),\n('Dogs are truly best friends', 'Dogs are truly best friend'),\n('Books are a source of', 'Book are a source of'),\n('The moon shines at night', 'The moons shine at night'),\n('Walking is good for health', 'Walking is good for the health'),\n('Children love to play', 'Children love to play'),\n('Music is a universal language', 'Music is a universal language'),\n('Winter is coming soon', 'Winter is coming soon'),\n('Happiness is a choice', 'Happiness is a choice'),\n('Travel broadens the mind', 'Travel broadens the mind'),\n('Dogs are our closest companions', 'Cats are solitary creatures'),\n('Books are portals to new worlds', 'Movies depict various realities'),\n('The moon shines brightly at night', 'The sun blazes hotly at noon'),\n('Walking is beneficial for health', 'Running can be hard on knees'),\n('Children love to play outside', 'Children love to play'),\n('Music transcends cultural boundaries', 'Music is a universal language'),\n('Winter is cold and snowy', 'Winter is coming soon'),\n('Happiness comes from within', 'Happiness is a choice'),\n('Traveling opens up perspectives', 'Travel broadens the mind');\n\nselect * from sentence_comparison;\n<\/code><\/pre>\n<\/div>\n<p data-line=\"40\" class=\"code-line\">\u3053\u3093\u306a\u30a4\u30e1\u30fc\u30b8\u3067\u30c7\u30fc\u30bf\u304c\u3067\u304d\u308c\u3070\u6210\u529f\u3067\u3059\u3002<br \/><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/c9ad70f74406-20250917.png\" class=\"md-img\" loading=\"lazy\"\/><\/p>\n<\/div>\n<\/details>\n<p data-line=\"46\" class=\"code-line\">\u985e\u4f3c\u5ea6\u306e\u6bd4\u8f03\u3068\u3044\u3046\u6587\u8108\u306b\u7f6e\u3044\u3066\u3001\u6587\u5b57\u5217\u30d9\u30fc\u30b9\u306e\u985e\u4f3c\u5ea6\u5224\u5b9a\u3068\u6587\u7ae0\u306e\u610f\u5473\u7684\u985e\u4f3c\u5ea6\u306e2\u8ef8\u304c\u5b58\u5728\u3057\u307e\u3059\u3002<br \/>\u6587\u7ae0\u540c\u58eb\u3092\u76f4\u63a5\u6587\u5b57\u5217\u3068\u3057\u3066\u6bd4\u8f03\u3059\u308b\u624b\u6cd5\u3068\u3057\u3066\u3001Snowflake\u6a19\u6e96\u95a2\u6570\u306b\u306fJAROWINKLER_SIMILARITY\uff08\u30b8\u30e3\u30ed\u30fb\u30a6\u30a3\u30f3\u30af\u30e9\u30fc\u985e\u4f3c\u5ea6\uff09\u3068EDITDISTANCE\uff08\u30ec\u30fc\u30d9\u30f3\u30b7\u30e5\u30bf\u30a4\u30f3\u8ddd\u96e2\uff09\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306f\u6587\u4e2d\u306e\u30b9\u30da\u30eb\u3084\u8868\u8a18\u306e\u9055\u3044\u3092\u691c\u51fa\u3059\u308b\u306e\u306b\u9069\u3057\u3066\u304a\u308a\u3001\u77ed\u3044\u30c6\u30ad\u30b9\u30c8\u3084\u5358\u8a9e\u30ec\u30d9\u30eb\u306e\u6bd4\u8f03\u306b\u5411\u3044\u3066\u3044\u307e\u3059\u3002\u4e00\u65b9\u3067\u3001\u6587\u7ae0\u306e\u610f\u5473\u7684\u985e\u4f3c\u5ea6\u306b\u306fAI_EMBED\u95a2\u6570\u3084ai_similarity\u95a2\u6570\u3068\u3044\u3063\u305f\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u6280\u8853\u3092\u6d3b\u7528\u3057\u307e\u3059\u3002<\/p>\n<h2 id=\"1.-%E6%96%87%E5%AD%97%E5%88%97%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E9%A1%9E%E4%BC%BC%E5%BA%A6%E5%88%A4%E5%AE%9A%E6%89%8B%E6%B3%95\" data-line=\"50\" class=\"code-line\">\n 1. \u6587\u5b57\u5217\u30d9\u30fc\u30b9\u306e\u985e\u4f3c\u5ea6\u5224\u5b9a\u624b\u6cd5<\/h2>\n<h3 id=\"jarowinkler_similarity-(%E3%82%B8%E3%83%A3%E3%83%AD%E3%83%BB%E3%82%A6%E3%82%A3%E3%83%B3%E3%82%AF%E3%83%A9%E3%83%BC%E9%A1%9E%E4%BC%BC%E5%BA%A6)\" data-line=\"52\" class=\"code-line\">\n JAROWINKLER_SIMILARITY (\u30b8\u30e3\u30ed\u30fb\u30a6\u30a3\u30f3\u30af\u30e9\u30fc\u985e\u4f3c\u5ea6)<\/h3>\n<p data-line=\"53\" class=\"code-line\">FF week69 \u306e\u89e3\u7b54\u306b\u306f<strong>JAROWINKLER_SIMILARITY\u95a2\u6570<\/strong>\u3092\u4f7f\u3044\u307e\u3059\u3002<br \/>2\u3064\u306e\u6587\u5b57\u5217\u9593\u306e\u985e\u4f3c\u5ea6\u30920\uff5e100\u306e\u6574\u6570\u5024\u3067\u8fd4\u3059\u95a2\u6570\u3067\u3059\u3002100\u304c\u5b8c\u5168\u4e00\u81f4\u30010\u304c\u5168\u304f\u5171\u901a\u90e8\u5206\u304c\u7121\u3044\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059\u3002\u5927\u6587\u5b57\u30fb\u5c0f\u6587\u5b57\u306f\u533a\u5225\u305b\u305a\u6bd4\u8f03\u3055\u308c\u307e\u3059\u304c\u3001\u7a7a\u767d\u3084\u53e5\u8aad\u70b9\u306a\u3069\u6587\u5b57\u4e0a\u306e\u5dee\u7570\u306f\u30b9\u30b3\u30a2\u306b\u5f71\u97ff\u3057\u307e\u3059\u3002<\/p>\n<p data-line=\"56\" class=\"code-line\">\u30b8\u30e3\u30ed\u30fb\u30a6\u30a3\u30f3\u30af\u30e9\u30fc\u8ddd\u96e2\u306b\u3064\u3044\u3066\u306f\u4e0b\u8a18\u304c\u8a73\u3057\u304b\u3063\u305f\u3067\u3059\u3002\u3053\u3053\u3067\u306f\u8a73\u7d30\u306a\u30ed\u30b8\u30c3\u30af\u306e\u89e3\u8aac\u306f\u5272\u611b\u3057\u307e\u3059\u3002<br style=\"display:none\"\/><br \/>\n<span class=\"embed-block zenn-embedded zenn-embedded-card\"><iframe id=\"zenn-embedded__78431a2dd1c9a\" src=\"https:\/\/embed.zenn.studio\/card#zenn-embedded__78431a2dd1c9a\" data-content=\"https%3A%2F%2Fmieruca-ai.com%2Fai%2Flevenshtein_jaro-winkler_distance%2F\" frameborder=\"0\" scrolling=\"no\" loading=\"lazy\"><\/iframe><\/span><a target=\"_blank\" href=\"https:\/\/mieruca-ai.com\/ai\/levenshtein_jaro-winkler_distance\/\" style=\"display:none\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/mieruca-ai.com\/ai\/levenshtein_jaro-winkler_distance\/<\/a><\/p>\n<p data-line=\"59\" class=\"code-line\">JAROWINKLER_SIMILARITY\u95a2\u6570\u3092\u7528\u3044\u305f\u89e3\u6cd5\u306f\u4ee5\u4e0b\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-block-container\">\n<pre class=\"language-sql\"><code class=\"language-sql code-line\" data-line=\"60\"><span class=\"token keyword\">select<\/span> sentence_1<span class=\"token punctuation\">,<\/span> sentence_2<span class=\"token punctuation\">,<\/span> JAROWINKLER_SIMILARITY<span class=\"token punctuation\">(<\/span>sentence_1<span class=\"token punctuation\">,<\/span> sentence_2<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> score\n<span class=\"token keyword\">from<\/span> sentence_comparison\n<span class=\"token keyword\">order<\/span> <span class=\"token keyword\">by<\/span> score <span class=\"token keyword\">desc<\/span><span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p data-line=\"65\" class=\"code-line\"><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/617c2dc011f7-20250918.png\" class=\"md-img\" loading=\"lazy\"\/><br \/><em>Frosty Friday week69 \u89e3\u7b54<\/em><\/p>\n<p data-line=\"69\" class=\"code-line\">JAROWINKLER_SIMILARITY\u95a2\u6570\u306f\u53e5\u8aad\u70b9\u3084\u4f59\u5206\u306a\u7a7a\u767d\u304c\u7570\u306a\u308b\u3060\u3051\u3067\u3082\u30b9\u30b3\u30a2\u304c\u4e0b\u304c\u308a\u307e\u3059\u3002<\/p>\n<div class=\"code-block-container\">\n<pre class=\"language-sql\"><code class=\"language-sql code-line\" data-line=\"70\"><span class=\"token keyword\">CREATE<\/span> <span class=\"token operator\">OR<\/span> <span class=\"token keyword\">REPLACE<\/span> <span class=\"token keyword\">TABLE<\/span> sentence_comparison_1<span class=\"token punctuation\">(<\/span>sentence_1 <span class=\"token keyword\">VARCHAR<\/span><span class=\"token punctuation\">,<\/span> sentence_2 <span class=\"token keyword\">VARCHAR<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token keyword\">INSERT<\/span> <span class=\"token keyword\">INTO<\/span> sentence_comparison_1 <span class=\"token punctuation\">(<\/span>sentence_1<span class=\"token punctuation\">,<\/span> sentence_2<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">VALUES<\/span>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">'The cat sat on the tree.'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'The cat sat on the tree'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token keyword\">select<\/span>   \nsentence_1<span class=\"token punctuation\">,<\/span>\nsentence_2<span class=\"token punctuation\">,<\/span>\njarowinkler_similarity<span class=\"token punctuation\">(<\/span>sentence_1<span class=\"token punctuation\">,<\/span> sentence_2<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> semantic_score\n<span class=\"token keyword\">from<\/span> sentence_comparison_1<span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p data-line=\"82\" class=\"code-line\">\u3053\u306e\u901a\u308a\u3001\u300c.\u300d\u304c\u542b\u307e\u308c\u308b\u304b\u542b\u307e\u308c\u306a\u3044\u304b\u3060\u3051\u3067\u30b9\u30b3\u30a2\u304c99\u306b\u306a\u308a\u307e\u3057\u305f\u3002<br \/><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/b79942d6e1a2-20250917.png\" class=\"md-img\" loading=\"lazy\"\/><\/p>\n<p data-line=\"85\" class=\"code-line\">\u4e0a\u8a18\u306e\u3088\u3046\u306b\u3001\u30b9\u30da\u30eb\u304c1\u6587\u5b57\u9055\u3046\u7a0b\u5ea6\u3067\u3042\u308c\u307090\u4ee5\u4e0a\u306e\u30b9\u30b3\u30a2\u304c\u3067\u307e\u3059\u3002<br \/>JAROWINKLER_SIMILARITY\u306f\u8a08\u7b97\u91cf\u3082\u6bd4\u8f03\u7684\u5c0f\u3055\u304f\u3001\u77ed\u3044\u6587\u5b57\u5217\u540c\u58eb\u306a\u3089\u6587\u5b57\u6570\u306e\u7a4d\u306b\u6bd4\u4f8b\u3057\u9ad8\u901f\u306b\u52d5\u4f5c\u3057\u307e\u3059\u3002\u4e0d\u8981\u306a\u8a18\u53f7\u985e\u306f\u4e8b\u524d\u306b\u9664\u53bb\u3059\u308b\u3068\u3044\u3063\u305f\u524d\u51e6\u7406\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\u307e\u305f\u9577\u3044\u6587\u7ae0\u3084\u8a9e\u9806\u306e\u5927\u304d\u304f\u7570\u306a\u308b\u6587\u7ae0\u540c\u58eb\u3067\u306f\u610f\u5473\u3092\u6349\u3048\u3089\u308c\u306a\u3044\u70b9\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<h3 id=\"editdistance-(%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E8%B7%9D%E9%9B%A2)\" data-line=\"89\" class=\"code-line\">\n EDITDISTANCE (\u30ec\u30fc\u30d9\u30f3\u30b7\u30e5\u30bf\u30a4\u30f3\u8ddd\u96e2)<\/h3>\n<p data-line=\"90\" class=\"code-line\">\u3053\u3061\u3089\u306f\u89e3\u7b54\u3067\u306f\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u6587\u5b57\u5217\u30d9\u30fc\u30b9\u306e\u985e\u4f3c\u5ea6\u5224\u5b9a\u624b\u6cd5\u3068\u3057\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002<br \/><strong>EDITDISTANCE\u95a2\u6570<\/strong>\u306f2\u3064\u306e\u6587\u5b57\u5217\u9593\u306e\u30ec\u30fc\u30d9\u30f3\u30b7\u30e5\u30bf\u30a4\u30f3\u8ddd\u96e2\uff08\u7de8\u96c6\u8ddd\u96e2\uff09\u3092\u8fd4\u3059\u95a2\u6570\u3067\u3059\u3002\u3053\u308c\u306f\u4e00\u65b9\u306e\u6587\u5b57\u5217\u3092\u4ed6\u65b9\u306b\u5909\u63db\u3059\u308b\u306e\u306b\u5fc5\u8981\u306a\u633f\u5165\u30fb\u524a\u9664\u30fb\u7f6e\u63db\u306e\u6700\u5c0f\u56de\u6570\u3067\u8868\u3055\u308c\u3001\u6570\u5024\u304c\u5c0f\u3055\u3044\u307b\u3069\u985e\u4f3c\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-block-container\">\n<pre class=\"language-sql\"><code class=\"language-sql code-line\" data-line=\"93\"><span class=\"token keyword\">SELECT<\/span> \nEDITDISTANCE<span class=\"token punctuation\">(<\/span><span class=\"token string\">'She loves chocolate chip cookies'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'She loves chocolate chip cookies'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> semantic_score_1<span class=\"token punctuation\">,<\/span>\nEDITDISTANCE<span class=\"token punctuation\">(<\/span><span class=\"token string\">'She loves chocolate chip cookies'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'She love chocolate chip cookies'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> semantic_score_2\n<span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p data-line=\"99\" class=\"code-line\">semantic_score_1\u306f\u5b8c\u5168\u4e00\u81f4\u3001semantic_score_2\u306f\u4e00\u6587\u5b57\u524a\u9664\uff08&#8221;loves&#8221;\u2192&#8221;love&#8221;\uff09\u3092\u884c\u3063\u305f\u7d50\u679c\u3067\u3059\u3002semantic_score_2\u306f1\u3068\u8868\u793a\u3055\u308c\u307e\u3059\u3002<br \/><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/37c118f91ec5-20250918.png\" class=\"md-img\" loading=\"lazy\"\/><br \/>\u3053\u306e\u3088\u3046\u306b\u5dee\u5206\u306e\u7d76\u5bfe\u91cf\u304c\u76f4\u611f\u7684\u306b\u5f97\u3089\u308c\u308b\u305f\u3081\u3001\u4f55\u6587\u5b57\u9055\u3046\u304b\u3092\u6b63\u78ba\u306b\u77e5\u308a\u305f\u3044\u5834\u5408\u306b\u6709\u7528\u3067\u3059\u3002<\/p>\n<p data-line=\"103\" class=\"code-line\">\u3055\u3063\u304d\u306e\u4f8b\u3060\u3068\u3053\u306e\u3088\u3046\u306a\u7d50\u679c\u306b\u306a\u308a\u307e\u3059\u3002<br \/><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/221df9ed3a64-20250918.png\" class=\"md-img\" loading=\"lazy\"\/><\/p>\n<p data-line=\"106\" class=\"code-line\"><strong>\u25b6 \u4f7f\u3044\u5206\u3051\u306e\u30dd\u30a4\u30f3\u30c8<\/strong><br \/>\u77ed\u3044\u6587\u5b57\u5217\uff08\u6c0f\u540d\u3084\u5546\u54c1\u30b3\u30fc\u30c9\u306a\u3069\uff09\u306e\u3042\u3044\u307e\u3044\u6bd4\u8f03\u306b\u306fJAROWINKLER_SIMILARITY\u3084EDITDISTANCE\u304c\u6d3b\u7528\u3055\u308c\u3001\u7279\u306b<strong>\u8ee2\u7f6e\u3084\u4e00\u90e8\u6b20\u640d\u3092\u542b\u3080\u5834\u5408\u306fJaro-Winkler\u306e\u307b\u3046\u304c\u9ad8\u3044\u985e\u4f3c\u5ea6\u3092\u793a\u3057\u307e\u3059<\/strong>\u3002\u4e00\u65b9\u3001<strong>\u3069\u308c\u3060\u3051\u7570\u306a\u308b\u304b\u306e\u7d76\u5bfe\u91cf\u3092\u91cd\u8996\u3059\u308b\u306a\u3089EDITDISTANCE\u304c\u6709\u7528\u3067\u3059<\/strong>\u3002<\/p>\n<h2 id=\"2.-%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E6%84%8F%E5%91%B3%E7%9A%84%E9%A1%9E%E4%BC%BC%E5%BA%A6%E6%89%8B%E6%B3%95\" data-line=\"109\" class=\"code-line\">\n 2. \u57cb\u3081\u8fbc\u307f\u30d9\u30fc\u30b9\u306e\u610f\u5473\u7684\u985e\u4f3c\u5ea6\u624b\u6cd5<\/h2>\n<h3 id=\"ai_embed%E9%96%A2%E6%95%B0\" data-line=\"111\" class=\"code-line\">\n AI_EMBED\u95a2\u6570<\/h3>\n<p data-line=\"112\" class=\"code-line\">FF week69\u306f\u306a\u306b\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u306e\u304b\u3068\u3044\u3046\u5b9a\u7fa9\u304c\u306a\u304f\u3001\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u306790 \u70b9\u3092\u8d85\u3048\u308b\u30b9\u30b3\u30a2\u3067\u6587\u7ae0\u3092\u660e\u3089\u304b\u306b\u3059\u308b\u3053\u3068\u3092\u8981\u6c42\u3055\u308c\u3066\u3044\u307e\u3059\u3002\uff08Expected outcome \u3067\u7b54\u3048\u306e\u753b\u50cf\u304c\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u4e00\u65e6\u6c17\u306b\u3057\u306a\u3044\u3053\u3068\u306b\u3057\u307e\u3059\u3002\uff09<\/p>\n<p data-line=\"114\" class=\"code-line\">\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u3044\u3048\u3070\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u6280\u8853\u304c\u4eca\u98a8\u3067\u6709\u52b9\u3060\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u6587\u7ae0\u306e\u300c\u610f\u5473\u7684\u306a\u8fd1\u3055\u300d\u3092\u6e2c\u308b\u306b\u306f\u3001\u5358\u8a9e\u306e\u8868\u9762\u4e0a\u306e\u4e00\u81f4\u3067\u306f\u306a\u304f\u6587\u610f\u3092\u30d9\u30af\u30c8\u30eb\u8868\u73fe\u306b\u57cb\u3081\u8fbc\u3093\u3067\u6bd4\u8f03\u3059\u308b\u65b9\u6cd5\u304c\u6709\u52b9\u3067\u3059\u3002Snowflake\u306f\u3001AISQL\u306b\u3088\u308a\u30c6\u30ad\u30b9\u30c8\u306e\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u751f\u6210\u3084\u985e\u4f3c\u5ea6\u8a08\u7b97\u3092SQL\u95a2\u6570\u3067\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p data-line=\"116\" class=\"code-line\">\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306f\u6587\u7ae0\u306e\u610f\u5473\u3082\u985e\u4f3c\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u610f\u5473\u7684\u306a\u8fd1\u3055\u306e\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u3067\u3082\u4eca\u56de\u306e\u89e3\u7b54\u3068\u306a\u308a\u307e\u3059\u3002\u5b9f\u88c5\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-block-container\">\n<pre class=\"language-sql\"><code class=\"language-sql code-line\" data-line=\"117\"><span class=\"token keyword\">WITH<\/span> emb <span class=\"token keyword\">AS<\/span> <span class=\"token punctuation\">(<\/span>\n  <span class=\"token keyword\">SELECT<\/span>\n    sentence_1<span class=\"token punctuation\">,<\/span>\n    sentence_2<span class=\"token punctuation\">,<\/span>\n    AI_EMBED<span class=\"token punctuation\">(<\/span><span class=\"token string\">'snowflake-arctic-embed-l-v2.0'<\/span><span class=\"token punctuation\">,<\/span> sentence_1<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> v1<span class=\"token punctuation\">,<\/span>\n    AI_EMBED<span class=\"token punctuation\">(<\/span><span class=\"token string\">'snowflake-arctic-embed-l-v2.0'<\/span><span class=\"token punctuation\">,<\/span> sentence_2<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> v2\n  <span class=\"token keyword\">FROM<\/span> sentence_comparison\n<span class=\"token punctuation\">)<\/span>\n<span class=\"token keyword\">SELECT<\/span>\n  sentence_1<span class=\"token punctuation\">,<\/span>\n  sentence_2<span class=\"token punctuation\">,<\/span>\n  CAST<span class=\"token punctuation\">(<\/span><span class=\"token function\">ROUND<\/span><span class=\"token punctuation\">(<\/span>VECTOR_COSINE_SIMILARITY<span class=\"token punctuation\">(<\/span>v1<span class=\"token punctuation\">,<\/span> v2<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> <span class=\"token keyword\">INT<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> VECTOR_COSINE_SIMILARITY\n<span class=\"token keyword\">FROM<\/span> emb\n<span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> VECTOR_COSINE_SIMILARITY <span class=\"token keyword\">DESC<\/span><span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p data-line=\"133\" class=\"code-line\"><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/aff55f29c490-20250918.png\" class=\"md-img\" loading=\"lazy\"\/><br \/><em>AI_EMBED\u95a2\u6570\u3092\u7528\u3044\u305fFrosty Friday week69 \u5225\u89e31<\/em><\/p>\n<p data-line=\"136\" class=\"code-line\"><strong>AI_EMBED\u95a2\u6570<\/strong>\u3067\u30c6\u30ad\u30b9\u30c8\u304b\u3089\u7279\u5fb4\u30d9\u30af\u30c8\u30eb\u3092\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002\u57cb\u3081\u8fbc\u307f\uff08Embedding\uff09\u3068\u306f\u30c6\u30ad\u30b9\u30c8\u3084\u753b\u50cf\u306e\u7279\u5fb4\u3092\u6349\u3048\u305f\u6570\u5024\u30d9\u30af\u30c8\u30eb\u3067\u3001\u985e\u4f3c\u5ea6\u8a08\u7b97\u3084\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u306b\u5229\u7528\u3067\u304d\u307e\u3059\u3002\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u540c\u58eb\u306e\u985e\u4f3c\u5ea6\u8a08\u7b97\u306b\u306f\u30b3\u30b5\u30a4\u30f3\u985e\u4f3c\u5ea6\u304c\u4f7f\u308f\u308c\u3001Snowflake\u3067\u306f\u30d9\u30af\u30c8\u30eb\u578b\u306b\u5bfe\u3057\u3066<strong>VECTOR_COSINE_SIMILARITY\u95a2\u6570<\/strong>\u306b\u3066\u985e\u4f3c\u5ea6\u3092\u5b9a\u91cf\u3057\u307e\u3059\u3002<\/p>\n<p data-line=\"138\" class=\"code-line\">\u30d9\u30af\u30c8\u30eb\u985e\u4f3c\u6027\u3092\u6e2c\u308b\u3082\u306e\u3068\u3057\u3066VECTOR_COSINE_SIMILARITY\u95a2\u6570\u4ee5\u5916\u306b\u3082\u3001<\/p>\n<ul data-line=\"139\" class=\"code-line\">\n<li data-line=\"139\" class=\"code-line\">\u30bf\u30af\u30b7\u30fc\u8ddd\u96e2\u3084\u30de\u30f3\u30cf\u30c3\u30bf\u30f3\u8ddd\u96e2\u3092\u30d9\u30fc\u30b9\u3068\u3057\u305f<strong>VECTOR_L1_DISTANCE\u95a2\u6570<\/strong>\n<\/li>\n<li data-line=\"140\" class=\"code-line\">\u30e6\u30fc\u30af\u30ea\u30c3\u30c9\u8ddd\u96e2\u3092\u30d9\u30fc\u30b9\u3068\u3057\u305f<strong>VECTOR_L2_DISTANCE\u95a2\u6570<\/strong>\n<\/li>\n<\/ul>\n<p data-line=\"142\" class=\"code-line\">\u304c\u3042\u308b\u306e\u3067\u3001\u8208\u5473\u304c\u3042\u308b\u65b9\u306f\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e<a target=\"_blank\" href=\"https:\/\/docs.snowflake.com\/ja\/sql-reference\/functions-vector\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u30d9\u30af\u30c8\u30eb\u985e\u4f3c\u95a2\u6570<\/a>\u30da\u30fc\u30b8\u3092\u5fa1\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\n<p data-line=\"145\" class=\"code-line\">\u203bEmbedding \u95a2\u6570\u306b\u3064\u3044\u3066\u83c5\u91ce \u7ffc\u3055\u3093\u306e\u8a18\u4e8b\u3092\u53c2\u8003\u306b\u3055\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002<br style=\"display:none\"\/><br \/>\n<span class=\"embed-block zenn-embedded zenn-embedded-card\"><iframe id=\"zenn-embedded__2b49fc55aeeb6\" src=\"https:\/\/embed.zenn.studio\/card#zenn-embedded__2b49fc55aeeb6\" data-content=\"https%3A%2F%2Fzenn.dev%2Ftsubasa_tech%2Farticles%2Fc0a2b8793a5d1f\" frameborder=\"0\" scrolling=\"no\" loading=\"lazy\"><\/iframe><\/span><a target=\"_blank\" href=\"https:\/\/zenn.dev\/tsubasa_tech\/articles\/c0a2b8793a5d1f\" style=\"display:none\" target=\"_blank\">https:\/\/zenn.dev\/tsubasa_tech\/articles\/c0a2b8793a5d1f<\/a><\/p>\n<h3 id=\"ai_similarity%E3%81%AB%E3%82%88%E3%82%8B%E7%9B%B4%E6%8E%A5%E6%AF%94%E8%BC%83\" data-line=\"149\" class=\"code-line\">\n AI_SIMILARITY\u306b\u3088\u308b\u76f4\u63a5\u6bd4\u8f03<\/h3>\n<p data-line=\"150\" class=\"code-line\">\u500b\u5225\u306b\u57cb\u3081\u8fbc\u307f\u3092\u6271\u308f\u305a\u30b7\u30f3\u30d7\u30eb\u306b2\u3064\u306e\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u30b9\u30b3\u30a2\u3060\u3051\u304c\u6b32\u3057\u3044\u5834\u5408\u3001AI_SIMILARITY(input1, input2)\u95a2\u6570\u304c\u4fbf\u5229\u3067\u3059\u3002\u3053\u308c\u306f\u5185\u90e8\u3067\u4e21\u65b9\u306e\u5165\u529b\u3092\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u306b\u5909\u63db\u3057\u3001\u305d\u306e\u30b3\u30b5\u30a4\u30f3\u985e\u4f3c\u5ea6\u306b\u57fa\u3065\u304f\u30b9\u30b3\u30a2\u3092\u76f4\u63a5\u8fd4\u3059\u95a2\u6570\u3067\u3059\u3002\u30c6\u30ad\u30b9\u30c8\u540c\u58eb\u306e\u5834\u5408\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067snowflake-arctic-embed-l-v2\u30e2\u30c7\u30eb\u304c\u4f7f\u308f\u308c\u3001-1\uff5e1\u306e\u7bc4\u56f2\u306e\u6d6e\u52d5\u5c0f\u6570\u70b9\u5024\u304c\u8fd4\u5374\u3055\u308c\u307e\u3059\u3002\u5b9f\u88c5\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n<div class=\"code-block-container\">\n<pre class=\"language-sql\"><code class=\"language-sql code-line\" data-line=\"152\"><span class=\"token keyword\">select<\/span>\n  sentence_1<span class=\"token punctuation\">,<\/span>\n  sentence_2<span class=\"token punctuation\">,<\/span>\n  CAST<span class=\"token punctuation\">(<\/span><span class=\"token function\">ROUND<\/span><span class=\"token punctuation\">(<\/span>ai_similarity<span class=\"token punctuation\">(<\/span>sentence_1<span class=\"token punctuation\">,<\/span> sentence_2<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> <span class=\"token keyword\">INT<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> ai_similarity<span class=\"token punctuation\">,<\/span>\n<span class=\"token keyword\">from<\/span> sentence_comparison\n<span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> ai_similarity <span class=\"token keyword\">DESC<\/span><span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p data-line=\"160\" class=\"code-line\"><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/a92bb2aafa84-20250918.png\" class=\"md-img\" loading=\"lazy\"\/><br \/><em>ai_similarity\u95a2\u6570\u3092\u7528\u3044\u305fFrosty Friday week69 \u5225\u89e32<\/em><\/p>\n<p data-line=\"163\" class=\"code-line\">AI_EMBED\u95a2\u6570\u3068\u6bd4\u3079\u3066\u3001\u30d9\u30af\u30c8\u30eb\u5316\u306e\u51e6\u7406\u3092\u52a0\u3048\u305a\u306b\u4e00\u767a\u3067\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br \/>\u3053\u306e\u3088\u3046\u306b\u57cb\u3081\u8fbc\u307f\u30d9\u30fc\u30b9\u306e\u985e\u4f3c\u5ea6\u306f\u8a00\u3044\u56de\u3057\u3084\u8a9e\u9806\u3001\u8868\u8a18\u63fa\u308c\u306b\u5f71\u97ff\u3055\u308c\u306b\u304f\u304f\u3001\u6587\u306e\u610f\u5473\u7684\u306a\u8fd1\u3055\u3092\u5b9a\u91cf\u5316\u3067\u304d\u307e\u3059\u3002\u5024\u304c1\u306b\u8fd1\u3051\u308c\u3070\u5185\u5bb9\u304c\u307b\u307c\u540c\u7fa9\u3067\u3042\u308a\u30010\u306b\u8fd1\u3051\u308c\u3070\u95a2\u9023\u6027\u304c\u8584\u3044\u3053\u3068\u3092\u793a\u3057\u307e\u3059\u3002\u5f93\u6765\u306e\u6587\u5b57\u5217\u985e\u4f3c\u5ea6\u3068\u7570\u306a\u308a\u3001\u540c\u7fa9\u8a9e\u3084\u8a00\u3044\u63db\u3048\u306b\u3082\u9ad8\u30b9\u30b3\u30a2\u3092\u4e0e\u3048\u308b\u70b9\u304c\u5927\u304d\u306a\u30e1\u30ea\u30c3\u30c8\u3067\u3059\u3002<\/p>\n<h2 id=\"3.-2%E3%81%A4%E4%BB%A5%E4%B8%8A%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E9%A1%9E%E4%BC%BC%E6%80%A7%E3%81%AE%E6%8E%A8%E5%AE%9A\" data-line=\"166\" class=\"code-line\">\n 3. 2\u3064\u4ee5\u4e0a\u306e\u30bb\u30c3\u30c8\u306e\u985e\u4f3c\u6027\u306e\u63a8\u5b9a<\/h2>\n<p data-line=\"167\" class=\"code-line\">Jaccard\u985e\u4f3c\u6027\u4fc2\u6570\u3068\u3044\u30462\u3064\u306e\u30bb\u30c3\u30c8\u9593\u306e\u985e\u4f3c\u6027\u3092\u6bd4\u8f03\u3059\u308b\u65b9\u6cd5\u3082\u5b58\u5728\u3057\u307e\u3059\u3002<a target=\"_blank\" href=\"https:\/\/docs.snowflake.com\/ja\/user-guide\/querying-approximate-similarity\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MinHash\u95a2\u6570<\/a>\u3092\u4f7f\u7528\u3057\u3066\u30012\u3064\u4ee5\u4e0a\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u9593\u306e\u304a\u304a\u3088\u305d\u306e\u985e\u4f3c\u6027\u3092\u63a8\u5b9a\u3067\u304d\u307e\u3059\u3002\u5b9f\u88c5\u4f8b\u306f\u4e0b\u8a18\u3067\u3059\u3002<\/p>\n<div class=\"code-block-container\">\n<pre class=\"language-sql\"><code class=\"language-sql code-line\" data-line=\"168\">\n<span class=\"token keyword\">WITH<\/span> pairs <span class=\"token keyword\">AS<\/span> <span class=\"token punctuation\">(<\/span>\n  <span class=\"token keyword\">SELECT<\/span> ROW_NUMBER<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">OVER<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">SELECT<\/span> <span class=\"token boolean\">NULL<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> pair_id<span class=\"token punctuation\">,<\/span> sentence_1<span class=\"token punctuation\">,<\/span> sentence_2\n  <span class=\"token keyword\">FROM<\/span> sentence_comparison\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n\n\nclean <span class=\"token keyword\">AS<\/span> <span class=\"token punctuation\">(<\/span>\n  <span class=\"token keyword\">SELECT<\/span>\n    pair_id<span class=\"token punctuation\">,<\/span>\n    LOWER<span class=\"token punctuation\">(<\/span>REGEXP_REPLACE<span class=\"token punctuation\">(<\/span>sentence_1<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'[^\\\\w\\\\s]'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">''<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> s1<span class=\"token punctuation\">,<\/span>\n    LOWER<span class=\"token punctuation\">(<\/span>REGEXP_REPLACE<span class=\"token punctuation\">(<\/span>sentence_2<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'[^\\\\w\\\\s]'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">''<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> s2\n  <span class=\"token keyword\">FROM<\/span> pairs\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n\n\ntokens <span class=\"token keyword\">AS<\/span> <span class=\"token punctuation\">(<\/span>\n  <span class=\"token keyword\">SELECT<\/span> pair_id<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'s1'<\/span> <span class=\"token keyword\">AS<\/span> side<span class=\"token punctuation\">,<\/span> t<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">value<\/span>::string <span class=\"token keyword\">AS<\/span> token\n  <span class=\"token keyword\">FROM<\/span> clean<span class=\"token punctuation\">,<\/span> LATERAL FLATTEN<span class=\"token punctuation\">(<\/span>input <span class=\"token operator\">=<\/span><span class=\"token operator\">&gt;<\/span> SPLIT<span class=\"token punctuation\">(<\/span>s1<span class=\"token punctuation\">,<\/span> <span class=\"token string\">' '<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> t\n  <span class=\"token keyword\">WHERE<\/span> t<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">value<\/span> <span class=\"token operator\">IS<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token boolean\">NULL<\/span> <span class=\"token operator\">AND<\/span> t<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">value<\/span> <span class=\"token operator\"\/> <span class=\"token string\">''<\/span>\n  <span class=\"token keyword\">UNION<\/span> <span class=\"token keyword\">ALL<\/span>\n  <span class=\"token keyword\">SELECT<\/span> pair_id<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'s2'<\/span> <span class=\"token keyword\">AS<\/span> side<span class=\"token punctuation\">,<\/span> t<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">value<\/span>::string <span class=\"token keyword\">AS<\/span> token\n  <span class=\"token keyword\">FROM<\/span> clean<span class=\"token punctuation\">,<\/span> LATERAL FLATTEN<span class=\"token punctuation\">(<\/span>input <span class=\"token operator\">=<\/span><span class=\"token operator\">&gt;<\/span> SPLIT<span class=\"token punctuation\">(<\/span>s2<span class=\"token punctuation\">,<\/span> <span class=\"token string\">' '<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> t\n  <span class=\"token keyword\">WHERE<\/span> t<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">value<\/span> <span class=\"token operator\">IS<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token boolean\">NULL<\/span> <span class=\"token operator\">AND<\/span> t<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">value<\/span> <span class=\"token operator\"\/> <span class=\"token string\">''<\/span>\n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n\n\nsketch <span class=\"token keyword\">AS<\/span> <span class=\"token punctuation\">(<\/span>\n  <span class=\"token keyword\">SELECT<\/span>\n    pair_id<span class=\"token punctuation\">,<\/span>\n    side<span class=\"token punctuation\">,<\/span>\n    MINHASH<span class=\"token punctuation\">(<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">,<\/span> token<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">AS<\/span> mh   \n  <span class=\"token keyword\">FROM<\/span> tokens\n  <span class=\"token keyword\">GROUP<\/span> <span class=\"token keyword\">BY<\/span> pair_id<span class=\"token punctuation\">,<\/span> side\n<span class=\"token punctuation\">)<\/span>\n\n\n<span class=\"token keyword\">SELECT<\/span>\n  p<span class=\"token punctuation\">.<\/span>sentence_1<span class=\"token punctuation\">,<\/span>\n  p<span class=\"token punctuation\">.<\/span>sentence_2<span class=\"token punctuation\">,<\/span>\n  APPROXIMATE_JACCARD_INDEX<span class=\"token punctuation\">(<\/span>mh<span class=\"token punctuation\">)<\/span><span class=\"token operator\">*<\/span><span class=\"token number\">100<\/span> <span class=\"token keyword\">AS<\/span> jaccard_sim\n<span class=\"token keyword\">FROM<\/span> sketch\n<span class=\"token keyword\">JOIN<\/span> pairs p <span class=\"token keyword\">USING<\/span> <span class=\"token punctuation\">(<\/span>pair_id<span class=\"token punctuation\">)<\/span>\n<span class=\"token keyword\">GROUP<\/span> <span class=\"token keyword\">BY<\/span> p<span class=\"token punctuation\">.<\/span>sentence_1<span class=\"token punctuation\">,<\/span> p<span class=\"token punctuation\">.<\/span>sentence_2<span class=\"token punctuation\">,<\/span> pair_id\n<span class=\"token keyword\">ORDER<\/span> <span class=\"token keyword\">BY<\/span> jaccard_sim <span class=\"token keyword\">DESC<\/span><span class=\"token punctuation\">;<\/span>\n<\/code><\/pre>\n<\/div>\n<p data-line=\"215\" class=\"code-line\"><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/zenn-user-upload\/d233092c9cae-20250918.png\" class=\"md-img\" loading=\"lazy\"\/><br \/><em>Minhash\u95a2\u6570\u306e\u7d50\u679c Frosty Friday week69 \u5225\u89e33<\/em><\/p>\n<p data-line=\"218\" class=\"code-line\">\u3053\u306e\u30af\u30a8\u30ea\u3067\u306f\u3001MinHash\u3092\u4f7f\u3063\u30662\u3064\u306e\u6587\u7ae0\u306e<strong>\u8fd1\u4f3cJaccard\u985e\u4f3c\u5ea6<\/strong>\u3092\u8a08\u7b97\u3057\u3066\u3044\u307e\u3059\u3002\u51e6\u7406\u306e\u6d41\u308c\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<ol data-line=\"220\" class=\"code-line\">\n<li data-line=\"220\" class=\"code-line\">\n<strong>\u524d\u51e6\u7406<\/strong>: \u6587\u7ae0\u3092\u5c0f\u6587\u5b57\u5316\u3057\u3001\u53e5\u8aad\u70b9\u3092\u9664\u53bb<\/li>\n<li data-line=\"221\" class=\"code-line\">\n<strong>\u30c8\u30fc\u30af\u30f3\u5316<\/strong>: \u6587\u7ae0\u3092\u5358\u8a9e\u306b\u5206\u5272\u3057\u3066\u96c6\u5408\u5316<\/li>\n<li data-line=\"222\" class=\"code-line\">\n<strong>MinHash\u7f72\u540d\u4f5c\u6210<\/strong>: \u5404\u6587\u7ae0\u306b\u5bfe\u3057\u3066MinHash\u7f72\u540d\u3092\u751f\u6210\uff08k=100\uff09<\/li>\n<li data-line=\"223\" class=\"code-line\">\n<strong>\u8fd1\u4f3cJaccard\u8a08\u7b97<\/strong>: <code>APPROXIMATE_JACCARD_INDEX<\/code>\u3067\u985e\u4f3c\u5ea6\u3092\u7b97\u51fa<\/li>\n<\/ol>\n<p data-line=\"225\" class=\"code-line\">MinHash\u306e\u5229\u70b9\u306f\u3001<strong>\u5927\u898f\u6a21\u306a\u30c6\u30ad\u30b9\u30c8\u30c7\u30fc\u30bf\u3067\u3082\u9ad8\u901f\u51e6\u7406<\/strong>\u304c\u53ef\u80fd\u306a\u3053\u3068\u3067\u3059\u3002\u5b8c\u5168\u306aJaccard\u4fc2\u6570\u306e\u8a08\u7b97\u306fO(n\u00b2)\u306e\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059\u304c\u3001MinHash\u3092\u4f7f\u3048\u3070<strong>O(k)<\/strong>\uff08k\u306f\u7f72\u540d\u30b5\u30a4\u30ba\uff09\u3067\u8fd1\u4f3c\u5024\u3092\u6c42\u3081\u3089\u308c\u307e\u3059\u3002<\/p>\n<p data-line=\"227\" class=\"code-line\">\u7279\u306b<strong>\u8a9e\u9806\u304c\u7570\u306a\u308b\u6587\u7ae0<\/strong>\uff08\u4f8b\uff1a\u300cI like SQL\u300dvs\u300cSQL I like\u300d\uff09\u3067\u3082\u9ad8\u3044\u985e\u4f3c\u5ea6\u3092\u691c\u51fa\u3067\u304d\u308b\u305f\u3081\u3001<strong>\u6587\u7ae0\u306e\u610f\u5473\u7684\u306a\u985e\u4f3c\u6027<\/strong>\u3092\u5224\u5b9a\u3057\u305f\u3044\u5834\u5408\u306b\u6709\u52b9\u3067\u3059\u3002<\/p>\n<p data-line=\"231\" class=\"code-line\">\u4ee5\u4e0a\u306e\u624b\u6cd5\u3092\u30b9\u30b3\u30a2\u306e\u7bc4\u56f2\u30fb\u89e3\u91c8\u3001\u30e1\u30ea\u30c3\u30c8\u30fb\u6ce8\u610f\u70b9\u306e\u89b3\u70b9\u3067\u307e\u3068\u3081\u307e\u3059\u3002<\/p>\n<div class=\"s_table\"><table data-line=\"233\" class=\"code-line\">\n<thead data-line=\"233\" class=\"code-line\">\n<tr data-line=\"233\" class=\"code-line\">\n<th>\u985e\u4f3c\u5ea6\u624b\u6cd5<\/th>\n<th>Snowflake\u95a2\u6570<\/th>\n<th>\u30b9\u30b3\u30a2\u306e\u7bc4\u56f2<\/th>\n<th>\u610f\u5473\u30fb\u89e3\u91c8\u3010\u203b1\u3011<\/th>\n<th>\u30e1\u30ea\u30c3\u30c8\u3010\u203b2\u3011<\/th>\n<th>\u6ce8\u610f\u70b9\u30fb\u9069\u7528\u4f8b\u3010\u203b3\u3011<\/th>\n<\/tr>\n<\/thead>\n<tbody data-line=\"235\" class=\"code-line\">\n<tr data-line=\"235\" class=\"code-line\">\n<td><strong>\u30b8\u30e3\u30ed\u30fb\u30a6\u30a3\u30f3\u30af\u30e9\u30fc\u985e\u4f3c\u5ea6<\/strong><\/td>\n<td><code>JAROWINKLER_SIMILARITY(s, t)<\/code><\/td>\n<td>0 \uff5e 100 (\u6574\u6570\u5024)<\/td>\n<td>100=\u5b8c\u5168\u4e00\u81f4\u30010=\u5171\u901a\u90e8\u5206\u306a\u3057\u3002<br \/>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306f\u7121\u8996\uff08case-insensitive\uff09<\/td>\n<td>\u8efd\u5fae\u306a\u30bf\u30a4\u30dd\u30fb\u8ee2\u7f6e\u306b\u5f37\u3044<br \/><strong>\u4f8b:<\/strong> \u201cootaka\u201d vs \u201cootaki\u201d \u2192 93<\/td>\n<td>\u7a7a\u767d\u3084\u53e5\u8aad\u70b9\u306e\u5dee\u3082\u30b9\u30b3\u30a2\u4f4e\u4e0b\u8981\u56e0<br \/>\u9577\u6587\u3084\u8a9e\u9806\u9055\u3044\u306b\u306f\u4e0d\u5411\u304d<\/td>\n<\/tr>\n<tr data-line=\"236\" class=\"code-line\">\n<td><strong>\u30ec\u30fc\u30d9\u30f3\u30b7\u30e5\u30bf\u30a4\u30f3\u8ddd\u96e2<\/strong><\/td>\n<td><code>EDITDISTANCE(s, t)<\/code><\/td>\n<td>0 \uff5e max(len)<\/td>\n<td>0=\u5b8c\u5168\u4e00\u81f4\u3001\u5024\u304c\u5927\u304d\u3044\u307b\u3069\u5dee\u7570\u5927\u3002<br \/>\u6587\u5b57\u5217\u9577\u306b\u4f9d\u5b58\uff08\u975e\u6b63\u898f\u5316\uff09<\/td>\n<td>\u5dee\u5206\u306e\u7d76\u5bfe\u91cf\u304c\u628a\u63e1\u53ef\u80fd<br \/><strong>\u4f8b:<\/strong> \u201cplaying\u201d vs \u201cplay\u201d \u2192 3 (ing\u524a\u9664)<\/td>\n<td>\u30b9\u30b1\u30fc\u30eb\u4e0d\u5b9a\u3067\u95be\u5024\u8a2d\u5b9a\u304c\u5fc5\u8981<br \/>\u8ee2\u7f6e\u3092\u5358\u4e00\u64cd\u4f5c\u3068\u307f\u306a\u3055\u306a\u3044<\/td>\n<\/tr>\n<tr data-line=\"237\" class=\"code-line\">\n<td><strong>\u57cb\u3081\u8fbc\u307f\u30b3\u30b5\u30a4\u30f3\u985e\u4f3c\u5ea6<\/strong><\/td>\n<td>\n<code>AI_SIMILARITY(s, t)<\/code><br \/>(<em>\u307e\u305f\u306f<\/em> <code>AI_EMBED<\/code>\u2192<code>VECTOR_COSINE_SIMILARITY<\/code>)<\/td>\n<td>-1 \uff5e 1 (\u5b9f\u6570\u5024)<\/td>\n<td>1=\u610f\u5473\u304c\u7b49\u3057\u3044\u30010=\u610f\u5473\u7684\u306b\u7121\u95a2\u4fc2\u3002<br \/>\u203b\u901a\u5e380\uff5e1\u3067\u8a55\u4fa1<\/td>\n<td>\u6587\u306e\u610f\u5473\u3092\u6bd4\u8f03\u53ef\u80fd\uff08\u8a00\u3044\u63db\u3048\u691c\u51fa\uff09<br \/><strong>\u4f8b:<\/strong> \u201cfast\u201d vs \u201cquick\u201d \u2192 \u9ad8\u30b9\u30b3\u30a2<\/td>\n<td>AI\u30e2\u30c7\u30eb\u63a8\u8ad6\u30b3\u30b9\u30c8\u3042\u308a<br \/>\u7d50\u679c\u306e\u8aac\u660e\u6027\u304c\u4f4e\u3044\uff08\u30d6\u30e9\u30c3\u30af\u30dc\u30c3\u30af\u30b9\uff09<\/td>\n<\/tr>\n<tr data-line=\"238\" class=\"code-line\">\n<td><strong>MinHash\uff08\u8fd1\u4f3cJaccard\uff09<\/strong><\/td>\n<td>\n<code>MINHASH(...)<\/code> + <code>APPROXIMATE_JACCARD_INDEX(...)<\/code>\n<\/td>\n<td>0 \uff5e 1 (\u5b9f\u6570\u5024)<\/td>\n<td>1=\u96c6\u5408\u304c\u5b8c\u5168\u4e00\u81f4\u30010=\u5171\u901a\u8981\u7d20\u306a\u3057<\/td>\n<td>\u5927\u898f\u6a21\u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03\u306b\u52b9\u7387\u7684<br \/><strong>\u4f8b:<\/strong> &#8220;I like SQL&#8221; vs &#8220;SQL I like&#8221; \u2192 1.0<\/td>\n<td>\u8fd1\u4f3c\u306a\u306e\u3067\u5b8c\u5168\u4e00\u81f4\u3067\u306f\u8aa4\u5dee\u3042\u308a<br \/>n-gram\/\u5358\u8a9e\u5206\u5272\u524d\u51e6\u7406\u304c\u5fc5\u8981<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p data-line=\"240\" class=\"code-line\">\u5404\u624b\u6cd5\u306e\u7279\u5fb4\u3092\u8e0f\u307e\u3048\u305f<strong>\u4f7f\u3044\u5206\u3051\u306e\u6307\u91dd<\/strong>\u3092\u307e\u3068\u3081\u308b\u3068\u3001<\/p>\n<ul data-line=\"242\" class=\"code-line\">\n<li data-line=\"242\" class=\"code-line\">\n<strong>\u6587\u5b57\u5217\u306e\u8868\u8a18\u3086\u308c\u691c\u51fa<\/strong> \u2192 <strong>JAROWINKLER_SIMILARITY<\/strong><\/p>\n<ul data-line=\"243\" class=\"code-line\">\n<li data-line=\"243\" class=\"code-line\">\u9867\u5ba2\u540d\u3001\u4f4f\u6240\u3001\u5546\u54c1\u540d\u306e\u91cd\u8907\u6392\u9664\u306b\u6700\u9069<\/li>\n<\/ul>\n<\/li>\n<li data-line=\"244\" class=\"code-line\">\n<strong>\u7de8\u96c6\u30b3\u30b9\u30c8\u306e\u5b9a\u91cf\u5316<\/strong> \u2192 <strong>EDITDISTANCE<\/strong><\/p>\n<ul data-line=\"245\" class=\"code-line\">\n<li data-line=\"245\" class=\"code-line\">\u30c7\u30fc\u30bf\u54c1\u8cea\u30c1\u30a7\u30c3\u30af\u3084\u5dee\u5206\u306e\u5177\u4f53\u7684\u628a\u63e1\u306b\u6709\u52b9<\/li>\n<\/ul>\n<\/li>\n<li data-line=\"246\" class=\"code-line\">\n<strong>\u610f\u5473\u7684\u985e\u4f3c\u6027\u306e\u5224\u5b9a<\/strong> \u2192 <strong>AI_SIMILARITY<\/strong><\/p>\n<ul data-line=\"247\" class=\"code-line\">\n<li data-line=\"247\" class=\"code-line\">\u691c\u7d22\u6a5f\u80fd\u3001\u30ec\u30b3\u30e1\u30f3\u30c7\u30fc\u30b7\u30e7\u30f3\u3001FAQ\u81ea\u52d5\u5fdc\u7b54\u306b\u6d3b\u7528<\/li>\n<\/ul>\n<\/li>\n<li data-line=\"248\" class=\"code-line\">\n<strong>\u5927\u898f\u6a21\u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03<\/strong> \u2192 <strong>MinHash + APPROXIMATE_JACCARD_INDEX<\/strong><\/p>\n<ul data-line=\"249\" class=\"code-line\">\n<li data-line=\"249\" class=\"code-line\">\u91cd\u8907\u6587\u66f8\u691c\u51fa\u3001\u985e\u4f3c\u8a18\u4e8b\u767a\u898b\u3001\u5927\u91cf\u30c6\u30ad\u30b9\u30c8\u306e\u524d\u51e6\u7406\u306b\u6700\u9069<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p data-line=\"251\" class=\"code-line\">\u9069\u5207\u306a\u624b\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3001<strong>\u30c7\u30fc\u30bf\u30af\u30ec\u30f3\u30b8\u30f3\u30b0\u306e\u7cbe\u5ea6\u3068\u52b9\u7387<\/strong>\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p data-line=\"254\" class=\"code-line\">\u3044\u304b\u304c\u3060\u3063\u305f\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n<p data-line=\"256\" class=\"code-line\">\u4eca\u56de\u306f\u3001Snowflake\u306e\u985e\u4f3c\u5ea6\u95a2\u6570\u3092\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002\u6587\u5b57\u5217\u30d9\u30fc\u30b9\u3084\u610f\u5473\u30d9\u30fc\u30b9\u3067\u4f7f\u3044\u5206\u3051\u3089\u308c\u308b\u3068\u826f\u3044\u3067\u3057\u3087\u3046\u3002\u500b\u4eba\u7684\u306b\u6587\u5b57\u5217\u30d9\u30fc\u30b9\u306fdbt test\u306a\u3069\u30c7\u30fc\u30bf\u54c1\u8cea\u306e\u78ba\u8a8d\u3067\u6d3b\u7528\u3057\u3001\u6587\u610f\u30d9\u30fc\u30b9\u3060\u3068\u30e6\u30fc\u30b6\u30fc\u691c\u7d22\u3084\u30ec\u30b3\u30e1\u30f3\u30c7\u30fc\u30b7\u30e7\u30f3\u6a5f\u80fd\u306a\u3069\u3067\u5a01\u529b\u3092\u767a\u63ee\u3059\u308b\u3068\u611f\u3058\u3066\u3044\u307e\u3059\u3002AI_SIMILARITY\u95a2\u6570\u306b\u81f3\u3063\u3066\u306f\u3001\u6628\u4eca\u306eSnowflake\u304c\u63d0\u5531\u3059\u308bSimplicity\u3092\u4f53\u73fe\u3059\u308b\u95a2\u6570\u3060\u306a\u3068\u611f\u3058\u307e\u3057\u305f\u3002<\/p>\n<p data-line=\"258\" class=\"code-line\">\u6700\u5f8c\u307e\u3067\u8aad\u3093\u3067\u3044\u305f\u3060\u304d\u3001\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\uff01<\/p>\n<\/div>\n\n<br \/><a href=\"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity\">\u5143\u306e\u8a18\u4e8b\u3092\u78ba\u8a8d\u3059\u308b <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\u30c7\u30fc\u30bf\u30a8\u30f3\u30b8\u30cb\u30a2\u306ekoreeda\u3067\u3059\u3002Frosty Friday\u306b\u51fa\u6f14\u3059\u308b\u6a5f\u4f1a\u3092\u9802\u304d\u307e\u3057\u305f\u3002\u79c1\u304c\u4eca\u56de\u30c1\u30e3\u30ec\u30f3\u30b8\u3059\u308b\u554f\u984c\u306f\u3001Week 69\u3067\u3059\u3002 \u554f\u984c\u306e\u8da3\u65e8\u3092\u7c21\u5358\u306b\u8aac\u660e\u3059\u308b\u3068\u3001\u300c\uff12\u3064\u306e\u30ab\u30e9\u30e0\u306e\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u30b9\u30b3\u30a2\u3067\u8868\u3057\u3066\u304f [&hellip;]","protected":false},"author":1,"featured_media":6014,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-6013","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-company-tec"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011 - \u30dd\u30b1\u30b3\u30f3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011 - \u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"og:description\" content=\"\u30c7\u30fc\u30bf\u30a8\u30f3\u30b8\u30cb\u30a2\u306ekoreeda\u3067\u3059\u3002Frosty Friday\u306b\u51fa\u6f14\u3059\u308b\u6a5f\u4f1a\u3092\u9802\u304d\u307e\u3057\u305f\u3002\u79c1\u304c\u4eca\u56de\u30c1\u30e3\u30ec\u30f3\u30b8\u3059\u308b\u554f\u984c\u306f\u3001Week 69\u3067\u3059\u3002 \u554f\u984c\u306e\u8da3\u65e8\u3092\u7c21\u5358\u306b\u8aac\u660e\u3059\u308b\u3068\u3001\u300c\uff12\u3064\u306e\u30ab\u30e9\u30e0\u306e\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u30b9\u30b3\u30a2\u3067\u8868\u3057\u3066\u304f [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity\" \/>\n<meta property=\"og:site_name\" content=\"\u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-18T14:28:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/1758205682_og-base-w1200-v2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"info@pokecon.jp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"info@pokecon.jp\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/6013\\\/\"},\"author\":{\"name\":\"info@pokecon.jp\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"headline\":\"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011\",\"datePublished\":\"2025-09-18T14:28:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/6013\\\/\"},\"wordCount\":183,\"image\":{\"@id\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/1758205682_og-base-w1200-v2.png\",\"articleSection\":[\"\u4f01\u696d\u30c6\u30c3\u30af\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/6013\\\/\",\"url\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity\",\"name\":\"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011 - \u30dd\u30b1\u30b3\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/1758205682_og-base-w1200-v2.png\",\"datePublished\":\"2025-09-18T14:28:02+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity#primaryimage\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/1758205682_og-base-w1200-v2.png\",\"contentUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/1758205682_og-base-w1200-v2.png\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zenn.dev\\\/dataheroes\\\/articles\\\/snowflake-similarity#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\",\"name\":\"\u30dd\u30b1\u30b3\u30f3\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\",\"name\":\"info@pokecon.jp\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"caption\":\"info@pokecon.jp\"},\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/author\\\/infopokecon-jp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011 - \u30dd\u30b1\u30b3\u30f3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity","og_locale":"ja_JP","og_type":"article","og_title":"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011 - \u30dd\u30b1\u30b3\u30f3","og_description":"\u30c7\u30fc\u30bf\u30a8\u30f3\u30b8\u30cb\u30a2\u306ekoreeda\u3067\u3059\u3002Frosty Friday\u306b\u51fa\u6f14\u3059\u308b\u6a5f\u4f1a\u3092\u9802\u304d\u307e\u3057\u305f\u3002\u79c1\u304c\u4eca\u56de\u30c1\u30e3\u30ec\u30f3\u30b8\u3059\u308b\u554f\u984c\u306f\u3001Week 69\u3067\u3059\u3002 \u554f\u984c\u306e\u8da3\u65e8\u3092\u7c21\u5358\u306b\u8aac\u660e\u3059\u308b\u3068\u3001\u300c\uff12\u3064\u306e\u30ab\u30e9\u30e0\u306e\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u30b9\u30b3\u30a2\u3067\u8868\u3057\u3066\u304f [&hellip;]","og_url":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity","og_site_name":"\u30dd\u30b1\u30b3\u30f3","article_published_time":"2025-09-18T14:28:02+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/1758205682_og-base-w1200-v2.png","type":"image\/png"}],"author":"info@pokecon.jp","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"info@pokecon.jp","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"4\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity#article","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/6013\/"},"author":{"name":"info@pokecon.jp","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"headline":"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011","datePublished":"2025-09-18T14:28:02+00:00","mainEntityOfPage":{"@id":"https:\/\/pokecon.jp\/job\/6013\/"},"wordCount":183,"image":{"@id":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/1758205682_og-base-w1200-v2.png","articleSection":["\u4f01\u696d\u30c6\u30c3\u30af"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/pokecon.jp\/job\/6013\/","url":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity","name":"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011 - \u30dd\u30b1\u30b3\u30f3","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity#primaryimage"},"image":{"@id":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/1758205682_og-base-w1200-v2.png","datePublished":"2025-09-18T14:28:02+00:00","author":{"@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"breadcrumb":{"@id":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity#primaryimage","url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/1758205682_og-base-w1200-v2.png","contentUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/1758205682_og-base-w1200-v2.png","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/zenn.dev\/dataheroes\/articles\/snowflake-similarity#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/pokecon.jp\/job\/"},{"@type":"ListItem","position":2,"name":"Snowflake\u306b\u3066\u6587\u7ae0\u306e\u985e\u4f3c\u5ea6\u3092\u6e2c\u308b\u3068\u304d\u306b\u4f7f\u3046\u6280\u8853\u3010Frosty Friday week69\u89e3\u8aac\u3011"}]},{"@type":"WebSite","@id":"https:\/\/pokecon.jp\/job\/#website","url":"https:\/\/pokecon.jp\/job\/","name":"\u30dd\u30b1\u30b3\u30f3","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pokecon.jp\/job\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997","name":"info@pokecon.jp","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","caption":"info@pokecon.jp"},"url":"https:\/\/pokecon.jp\/job\/author\/infopokecon-jp\/"}]}},"_links":{"self":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/6013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/comments?post=6013"}],"version-history":[{"count":1,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/6013\/revisions"}],"predecessor-version":[{"id":6015,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/6013\/revisions\/6015"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media\/6014"}],"wp:attachment":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media?parent=6013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/categories?post=6013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/tags?post=6013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}