HeadlinesBriefing favicon HeadlinesBriefing.com

জাপানি পোস্টাল CSV বিশ্লেষণ

Hacker News •
×

কিছু সময় আগে আমি posuto মডিউল প্রকাশ করেছি, একটি এমন প্যাকেজ যা জাপানি পোস্টাল কোড ডেটা সহজ ব্যবহারযোগ্য ফর্ম্যাটে প্রদর্শন করে। এটি জাপান পোস্ট দ্বারা প্রকাশিত ডেটার উপর ভিত্তি করে, যা ব্যাপকভাবে ব্যবহৃত হলেও পার্স করা কঠিন হিসেবে পরিচিত। আমি পোস্টাল ডেটার জ্ঞান প্রথমবার তখন অবগত করলাম যখন আমি অনলাইন ফর্মে আমার পোস্টাল কোড লিখেছি এবং ঠিকানাটি স্বয়ংক্রিয়ভাবে "XXX-borough (except the following buildings)" করে দেখায়। আমি সেই প্যারেন্থেসিসের বিষয়ে কোনো ধারণা নেই জানি, তাই আমি পোস্টাল ডেটার সাধারণ উৎস খোঁজার চেষ্টা করলাম, CSV ফাইল পেয়েছি এবং সমস্যাটি খুঁজে বের করেছি। সত্যিই CSV ফাইলটি পাঠকদেr জন্য পঠনযোগ্য নোটস সহ প্যারেন্থেসিসে রাখা থাকে এবং রোর ক্রমের হিসাব দেখায়। এটি সমস্যা সৃষ্টি করে। ডেটাটি মূলত এক রো অনুযায়ী উপযোগী, যেখানে প্যারেন্থেসিস বাস্তবে কোনো অর্থ নেই। CSV একটি ফিল্ড-ডেলিমিটেড ফর্ম্যাট হলেও, প্যারেন্থেসিসের প্রয়োজন নেই - আপনি শুধুমাত্র একটি নোট ফিল্ড যোগ করতে পারেন। এটি ken_all.csv-এর যত মোটামুটি সমস্যার মধ্যে একটি। আপনি মেজের জন্য সাধারণত কেউ এই বিষয়ে অভিযোগ করেন, এবং কখনও কখনও একটি ব্লগ এই বিষয়ের বিষয়ে স্থানীয় ও বিশ্বব্যাপী পোস্টগুলি সংগ্রহ করত। একটি বিশেষ মজার টুইট মানুষের মতো কথা বলে যারা কম্পিউটারকে মানবস্বভাবের কাছে নিয়ে যায়, তাদের মানে হল কখনও কখনও নরকে যেতে হবে ken_all.csv সবসময় পার্স করতে হবে। ফাইলের README ব্যাখ্যা করে যে দীর্ঘ ফিল্ড সমন্ধে রয়েছে লাইনগুলি কয়েক লাইনে বাঁচানো হবে। বিশেষভাবে, যদি নেবরহেড নাম 38 অক্ষরের বেশি হয়, অথবা যদি হাফ-রয়্য কাটাকানা প্রয়োগ ফিল্ড 76 অক্ষরের বেশি হয়, তাহলে লাইনটি দুই লাইনে বাঁচানো হবে। অতিভুল নেবরহেড ফিল্ড চালিত হবে এবং সব অন্যান্য ফিল্ড কপি করা হবে। অতিরিক্তভাবে, যদিও দৈর্ঘ্য সীমাগুলি উপরোক্ত মতো উল্লেখ করা হয়েছে, তবুও দীর্ঘ লাইনগুলিতে লাইন ব্রেক কোন জায়গায় প্রবেশ করে তা পুরোপুরি র্যান্ডম মতো প্রদর্শন করে, অক্ষরের সীমা বা সাধারণ শব্দ সীমার কাছাকাছি নয়। সম্পর্কে লক্ষ্য করা জরুরী যে ken_all.csv-এর সব সমস্যা স্বয়ংক্রিয়ভাবে প্রযুক্তিগত নয়; পোস্টাল কোডগুলি সবসময় কঠিন। CSV-এ সবচেয়ে বেশি রো আছে এমন পোস্টাল কোড - একটি অবিশ্বস্ত 66 রো - 〒452-0961 হল, যা জাপানের Aichi প্রেফেকচারের Kiyosu শহরের Haruhi এলাকাকে উল্লেখ করে। এটি সেই বহু রোর কারণ হল কারণ প্রতিটি নেবরহেড আলাদা রো পায়। বিপরীতভাবে, সবচেয়ে দীর্ঘ চালিত রো, লাইন ব্রেক নিয়মগুলি ব্যবহার করে, 〒602-8368 বা 〒602-8374-এর এন্ট্রি হয়, দুটিই আট রো সহ। দুটি কেওটির কয়েকটি ক্ষেত্রে অবধিক একটি অনন্য, অজাবানেক এবং ইন্টারসেকশন-ভিত্তিক ঠিকানা প্রণালী ব্যবহার করে। অনেক ক্ষেত্রের জন্য সাধারণ পোস্টাল কোডগুলি আছে, যেখানে নেবরহেডটি "except the following" হিসাবে দেওয়া হয়, এবং একমাত্র কাজ হল সেই ঠিক অক্ষর শৃঙ্খল খোঁজা এবং এটি বাদ দেওয়া। সমমিত স্ট্রিংগুলির একটি ভিন্নতা আছে, এবং এটি কঠিন জানা যে আমি সব ধরার স্ট্রিংগুলি ধরেছি কিনা। একটি অন্য কমেন্টের উদাহরণ হল 一円। সাধারণত এটি "এক ইয়েন" বলে, কিন্তু এটি "আশপাশের ক্ষেত্র"ও বলে, এবং এটি CSV-এ নেবরহেড নামগুলিতে থাকা উচিত এমন একটি নোট, বিশেষ করে...