পাঠ্যটিতে নির্ভরযোগ্যভাবে কোড সনাক্ত করার জন্য সহজ পদ্ধতি?


142

জিমেইলের এই বৈশিষ্ট্যটি রয়েছে যেখানে আপনি কোনও ইমেল প্রেরণের চেষ্টা করলে এটি সংযুক্তি থাকতে পারে বলে মনে করে এটি আপনাকে সতর্ক করবে ।

আপনি কি ফাইল সংযুক্ত করার অর্থ দিয়েছিলেন?

কারণ GMail see the attachedইমেলটিতে স্ট্রিংটি সনাক্ত করেছে , তবে প্রকৃত সংযুক্তি নেই, আমি প্রেরিত বোতামটি ক্লিক করলে এটি একটি ঠিক আছে / বাতিল ডায়ালগটি দিয়ে আমাকে সতর্ক করে।

স্ট্যাক ওভারফ্লোতে আমাদের সম্পর্কিত সমস্যা রয়েছে। এটি হ'ল, যখন কোনও ব্যবহারকারী এই জাতীয় কোনও পোস্টে প্রবেশ করে :

আমার সমস্যাটি হ'ল আমাকে ডাটাবেস পরিবর্তন করতে হবে তবে আমি তৈরি করব না 
একটি নতুন সংযোগ। উদাহরণ:

ডেটাসেট dsMasterInfo = নতুন ডেটাসেট ();
ডাটাবেস ডিবি = ডাটাবেসফ্যাক্টরি.ক্রেটডেটাবেস ("সংযোগস্ট্রিং");
ডিবিকমন্ড ডিবিকম্যান্ড = ডিবি.গেটস্টোরডপ্রোককম্যান্ড ("#GetMasterName");

এই ব্যবহারকারী কোড হিসাবে তাদের কোড ফর্ম্যাট করেনি !

অর্থাৎ, তারা মার্কডাউন প্রতি 4 টি স্পেসে ইন্ডেন্ট দেয়নি বা কোড বোতামটি (বা কীবোর্ড শর্টকাট ctrl+ k) ব্যবহার করে না যা তাদের পক্ষে এটি করে।

সুতরাং, আমাদের সিস্টেম অনেকগুলি সম্পাদনা গ্রহণ করছে যেখানে লোকেরা যেতে হবে এবং ম্যানুয়ালি কোডগুলি এমন ফর্ম্যাট করতে অক্ষম এমন লোকদের জন্য কোড ফর্ম্যাট করে। এর ফলে প্রচুর পরিমাণে বেলিচিং হয় । আমরা সম্পাদক সাহায্যটি বেশ কয়েকবার উন্নত করেছি, তবে ব্যবহারকারীর বাড়ীতে গাড়ি চালানো এবং তাদের কীবোর্ডে সঠিক বোতাম টিপানোর জন্য অল্প সময়ের জন্য, এরপরে আর কী করা যায় তা দেখার জন্য আমাদের ক্ষতি হয়।

সে কারণেই আমরা একটি গুগল জিমেইল স্টাইল সতর্কতা বিবেচনা করছি:

আপনার কি কোড পোস্ট করার অর্থ ছিল?

আপনি এমন স্টাফ লিখেছিলেন যা আমরা মনে করি কোডের মতো মনে হয় তবে আপনি টুলবার কোড বোতাম বা ctrl+ kকোড বিন্যাসকরণ কমান্ড ব্যবহার করে 4 স্পেস ইনডেন্ট করে কোড হিসাবে এটি ফর্ম্যাট করেন নি।

যাইহোক, এই সতর্কতা উপস্থাপনের জন্য আমাদের মনে হয় যে আমরা কোন প্রশ্নে ফর্ম্যাট কোড না বলে তার উপস্থিতি সনাক্ত করতে পারি । এটি করার একটি সহজ, আধা-নির্ভরযোগ্য উপায় কী?

  • প্রতি Markdown , কোড সবসময় 4 শূণ্যস্থান দ্বারা বা ব্যাকটিক মধ্যে ইন্ডেন্টযুক্ত হয়, তাই কিছু সঠিক ফর্ম্যাটে অবিলম্বে চেক থেকে বাতিল করা যেতে পারে।
  • এটি কেবলমাত্র একটি সতর্কবার্তা এবং এটি কেবলমাত্র কম খ্যাতি প্রাপ্ত ব্যবহারকারীদের তাদের প্রথম প্রশ্ন জিজ্ঞাসা করার জন্য (বা তাদের প্রথম উত্তর সরবরাহ করা) প্রযোজ্য হবে, তাই কিছু মিথ্যা ইতিবাচক ঠিক আছে, যতক্ষণ তারা প্রায় 5% বা তার চেয়ে কম হয়।
  • স্ট্যাক ওভারফ্লো সম্পর্কিত প্রশ্নগুলি যে কোনও ভাষায় হতে পারে , যদিও আমরা আমাদের চেকটিকে "বড় দশ" ভাষায় সীমাবদ্ধ করতে পারি। প্রতি ট্যাগ ট্যাগ পৃষ্ঠা যা সি #, জাভা, পিএইচপি, জাভাস্ক্রিপ্ট, উদ্দেশ্য-সি, সি, সি ++, পাইথন, রুবি হবে।
  • আপনার সম্ভাব্য সমাধানটি অডিট করতে স্ট্যাক ওভারফ্লো ক্রিয়েটিভ কমন্স ডেটা ডাম্প ব্যবহার করুন (বা স্ট্যাক ওভারফ্লোতে শীর্ষ 10 টি ট্যাগে কয়েকটি প্রশ্ন চয়ন করুন) এবং দেখুন এটি কীভাবে হয়।
  • সিউডোকোড ঠিক আছে তবে আপনি অতিরিক্ত বন্ধুত্বপূর্ণ হতে চাইলে আমরা সি # ব্যবহার করি।
  • আরও সহজতর (যতক্ষণ এটি কাজ করে)। চুম্বন! যদি আপনার সমাধানটির জন্য 10 টি আলাদা আলাদা সংকলক, বা একটি বায়সিয়ান ইনফারেন্স ইঞ্জিনকে ম্যানুয়ালি প্রশিক্ষণ দেওয়ার জন্য লোকদের একটি সেনা আমাদের পোস্ট করার চেষ্টা করার প্রয়োজন হয় ... এটি আমাদের মনের মতো ছিল না ঠিক।

34
আমি মনে করি যদি উপস্থিত থাকে না তবে আপনি যদি সর্বদা সতর্কতা প্রদর্শন করেন তবে আপনি 5% ত্রুটি সীমা থেকে নীচে হবেন। এটি রসিকতা হিসাবে অর্ধেক বোঝানো হয়েছে।
কনরাড রুডলফ

59
@ কনরাড এটি আরও ভাল কাজ করবে যদি এই বার্তাটি হয়: 'হয় আপনার প্রশ্নে কোডের নমুনাগুলি অনুপস্থিত যা অন্যদের এটি বুঝতে সহায়তা করবে বা আপনি সেগুলি সঠিকভাবে যুক্ত করতে ভুলে গেছেন'। এটি সমস্ত ক্ষেত্রে 99% কভার করা উচিত।
Thorsten müller

3
এটি একটি দুর্দান্ত প্রশ্ন তবে আমি অনুভব করি যে এর কোনও উত্তর নেই। আপনি আমাকে একটি বোকা-প্রমাণ সিস্টেম দেখান এবং আমি আপনাকে আরও ভাল বোকা দেখাব show এমনকি যদি এই সমস্যাটি কোডের মাধ্যমে সমাধান করা যায় তবে সম্ভবত এটি করা উচিত নয়? এই অজ্ঞ লোকেরা যারা আমার মতো লোকদের জন্য সঠিক সাইট জিজ্ঞাসা করে এবং সঠিক উত্তর আইএমএইচওর জন্য অবদান রাখে এমন একটি ভাল জিজ্ঞাসা জিজ্ঞাসা করার বিরক্ত করা যায় না।
maple_shaft

2
আমি দেখেছি একটি সাধারণ প্যাটার্ন হ'ল কোডের একটি ব্লক যা সঠিকভাবে নিজের মধ্যে ইন্টেন্টেড ছিল, তবে যেখানে প্রথম এবং শেষ লাইনগুলি (সাধারণত কেবলমাত্র দুটি, কখনও কখনও একাধিক ফাংশন দেখানোর সময় আরও বেশি থাকে) কোড হিসাবে লেবেলযুক্ত হয় না। এটি সম্ভবত সনাক্ত করা উচিত।
ডিউব্লুনগুলি

3
পাশের নোটে, GMail নিশ্চয়তার পাঠ্যটি বরং বিভ্রান্তিকর। তাহলে প্রথম প্রশ্ন আপনার উত্তর 'হ্যাঁ' তারপর দ্বিতীয় প্রশ্নে উত্তর 'না' ... হয়
pimvdb

উত্তর:


147

একটি সঠিক সমাধান সম্ভবত কিছু জ্ঞাত / পরিসংখ্যান মডেল হতে পারে, তবে এখানে কিছু মজার ধারণা দেওয়া হয়েছে:

  1. একটি লাইনের শেষে আধা-কলোন । এটি একা পুরো ভাষার একগুচ্ছ ধরতে পারে।
  2. সরাসরি পাঠ্যের অনুসরণকারীরা পৃথক করার জন্য কোনও স্থান নেই: myFunc()
  3. দুটি শব্দের মধ্যে একটি বিন্দু বা তীর: foo.bar = ptr->val
  4. কোঁকড়া ধনুর্বন্ধনী, বন্ধনী উপস্থিতি: while (true) { bar[i]; }
  5. "মন্তব্য" সিনট্যাক্সের উপস্থিতি (/ *, // ইত্যাদি): /* multi-line comment */
  6. অপরিচিত অক্ষর / অপারেটর: +, *, &, &&, |, ||, <, >, ==, !=, >=, <=, >>, <<, ::, __
  7. পাঠ্যের উপর আপনার সিনট্যাক্স হাইলাইটার চালান। যদি এটির কিছু উচ্চ শতাংশ হাইলাইট শেষ হয় তবে এটি সম্ভবত কোড।
  8. পোস্টে উট কেস পাঠ্য।
  9. নেস্টেড প্রথম বন্ধনী, ধনুর্বন্ধনী এবং / অথবা বন্ধনী।

এগুলির প্রতিটি প্রদর্শিত হওয়ার সংখ্যার উপর নজর রাখতে পারে এবং এগুলি স্প্যামএস্যাসিনের মতো পার্সেপ্ট্রনের মতো একটি মেশিন-লার্নিং অ্যালগরিদমের বৈশিষ্ট্য হিসাবে ব্যবহার করা যেতে পারে ।


25
টিপস: 3 এর খুব কম ওজন থাকে কারণ শব্দের মধ্যে একটি বিন্দু টাইপের ফলাফল হতে পারে। 5 টি ইউআরএলের সাথে মেলে না। 6 এর জন্য অ্যাম্পারস্যান্ড প্রায়শই কোড প্রসঙ্গে বাইরে ব্যবহৃত হয় এটি আপনার চরিত্রের ওজনও কম হতে পারে। হাইলাইটারটি কাজ করে কিনা ডাবল পরীক্ষা করে দেখুন কারণ এটি নোটপ্যাড ++ এ আমি কখনও কখনও দেখতে পাই বলে নন-কোড পাঠকে হাইলাইট করতে পারে।
তামারা উইজসম্যান

8
আবার। টাইপো হিসাবে - পতাকাঙ্কিত করার কোনও ক্ষতি হবে না যে লেখক হিসাবে যেভাবেই সম্পাদনা করা উচিত।
ব্যবহারকারী 151019

4
অতিরিক্ত হিসাবে, নির্দিষ্ট ভাষাগুলি যা অনেক ভাষায় সহায়তা করতে পারে: WHIL, ELSE, IF, LOOP, BREAK ইত্যাদি
জোসে নুনোফেরেইরা

6
"সংখ্যাসূচক শব্দের আগে $ এর ব্যবহার যুক্ত করুন: পার্ল এবং পিএইচপি (এবং রুবি?) এ $ ভার সাধারণ is"
ফিলিহো

4
আপনি আমার সনাক্ত করতে পারবেন না SELECT DISTINCT name FROM people WHERE id IS NOT NULL
বেনোইট

54

আমি জানতে আগ্রহী হব যে একদিকে লিখিত ইংরেজির গড় মেট্রিকগুলি এবং অন্যদিকে কোডগুলি।

  • অনুচ্ছেদের দৈর্ঘ্য
  • লাইন দৈর্ঘ্য
  • শব্দের আকার
  • অক্ষর ব্যবহৃত
  • বর্ণমালা, সংখ্যাসূচক এবং অন্যান্য চিহ্নের অক্ষরের মধ্যে অনুপাত
  • প্রতি শব্দ প্রতীক সংখ্যা
  • প্রভৃতি

সম্ভবত এটি একা কোড এবং বাকীগুলির মধ্যে ইতিমধ্যে বৈষম্যমূলক হতে পারে। কমপক্ষে আমি বিশ্বাস করি কোড নির্বিশেষে ভাষা নির্বিশেষে অনেক ক্ষেত্রে কিছুটা লক্ষণীয়ভাবে ভিন্ন মেট্রিকগুলি প্রদর্শিত হবে।

সুসংবাদটি হ'ল: আপনার পরিসংখ্যান তৈরির জন্য আপনার কাছে ইতিমধ্যে প্রচুর ডেটা রয়েছে।


ঠিক আছে আমি আমার অনুমানগুলি ব্যাক আপ করার জন্য কিছু ডেটা নিয়ে এসেছি। :-)

আমি আপনার নিজের পোস্টে এবং প্রথম পোস্টে একটি সুন্দর উন্নত সরঞ্জাম সহ স্ট্যাকওভারফ্লোতে আমি একটি দ্রুত এবং নোংরা পরীক্ষা করেছিwc

wcএই দুটি উদাহরণের পাঠ্য অংশে এবং কোড অংশে চালানোর পরে আমার যা ছিল তা এখানে :

প্রথমে ইংরেজি অংশটি দেখুন :

  • আপনার পোস্টের ইংলিশ অংশ (2635 অক্ষর, 468 শব্দ, 32 লাইন)
    • 5 টি অক্ষর / শব্দ, 82 টি অক্ষর / রেখা, 14 শব্দ / লাইন
  • অন্যান্য পোস্টের ইংরেজি অংশ (1499 অক্ষর, 237 শব্দ, 12 লাইন)
    • 6 টি অক্ষর / শব্দ, 124 অক্ষর / লাইন, 19 শব্দ / লাইন

খুব অনুরূপ আপনি কি মনে করেন না?

এবার কোড অংশটি একবার দেখে নিই !

  • আপনার পোস্টের কোড অংশ (174 অক্ষর, 13 শব্দ, 3 লাইন)
    • 13 টি অক্ষর / শব্দ, 58 টি অক্ষর / লাইন, 4 শব্দ / লাইন
  • অন্যান্য পোস্টের কোড অংশ (4181 অক্ষর, 287 শব্দ, 151 লাইন)
    • 14 টি অক্ষর / শব্দ, 27 অক্ষর / লাইন, 2 শব্দ / লাইন

দেখুন যে এই মেট্রিকগুলি কতটা আলাদা না, তবে আরও গুরুত্বপূর্ণ, তারা ইংলিশ মেট্রিকগুলির থেকে কতটা আলাদা? এবং এটি কেবল একটি সীমিত সরঞ্জাম ব্যবহার করছে। আমি এখন নিশ্চিত যে আপনি আরও মেট্রিক্স পরিমাপ করে সত্যই কিছু পেতে পারেন (আমি অক্ষরের পরিসংখ্যানের বিষয়ে বিশেষত ভাবছি)।

আমি কি কুকি পারি?


6
লাইনের দৈর্ঘ্য, বিশেষত যদি আপনি বুলেট পয়েন্টগুলি বাদ দেন এবং নির্দিষ্ট বিরামচিহ্নযুক্ত নির্দিষ্ট দৈর্ঘ্যের চেয়ে কম ক্লাস্টারযুক্ত রেখাগুলি সন্ধান করেন তবে এটি ভাল পরিমাপ বলে মনে হবে।
জন হপকিন্স

এটি কোডের ব্লকগুলির জন্য কাজ করবে, তবে ইনলাইন সিডিডি সন্ধান করা সম্পূর্ণ কঠিন মনে হবে seem এটি কতটা গুরুত্বপূর্ণ তা নিশ্চিত নয়, যদিও - বড় সমস্যা যাইহোক অবরুদ্ধ বিন্যাসের কোডের বড় ব্লক।
সিএওও

3
কোনও কুকিজ নেই। আপনার পোস্টের লিঙ্কটি 404
james.garriss

@ জেমস.গারিস: ইন্টারনেট আমার কুকির জারটি চুরি করেছে। :( যদিও বিজ্ঞপ্তির জন্য আপনাকে ধন্যবাদ।
জুলিয়েন গের্টল্ট

23

সাধারণত, মার্কোভ চেইনগুলি পাঠ্য উত্পন্ন করতে ব্যবহৃত হয়, তবে এগুলি প্রশিক্ষিত মডেলের সাথে পাঠ্যটির সাদৃশ্য ( সিই শ্যানন 1950 অনুসারে ) পূর্বাভাস দেওয়ার জন্যও ব্যবহার করা যেতে পারে । আমি একাধিক মার্কভ চেইনের প্রস্তাব দিই।

প্রতিটি প্রচলিত ভাষার জন্য, ভাষার কোডের একটি বৃহত, প্রতিনিধি নমুনায় একটি মার্কভ চেইন প্রশিক্ষণ দিন। তারপরে, স্ট্যাক ওভারফ্লো পোস্টের জন্য আপনি কোড সনাক্ত করতে চান, তার জন্য প্রতিটি চেইনের জন্য নিম্নলিখিতটি করুন:

  • পোস্টে লাইনগুলি লুপ করুন।
    • দুটি ভেরিয়েবল ঘোষণা করুন: ACTUAL = 1.0 এবং উচ্চতম = 1.0
    • লাইনের প্রতিটি অক্ষরের মধ্য দিয়ে লুপ করুন।
      • প্রতিটি চরিত্রের জন্য, মার্কভ চেইনে সম্ভাব্যতাটি সন্ধান করুন যে বর্তমানের অক্ষরটি আগের এন অক্ষরের অনুসরণ করে। ACTUAL = ACTUAL * প্রোব 1 সেট করুন । যদি বর্তমান চরিত্রটি শৃঙ্খলে উপস্থিত না থাকে তবে প্রোব 1 এর জন্য 0.000001 এর মতো একটি ছোট মান ব্যবহার করুন ।
      • পূর্ববর্তী এন অক্ষরগুলি অনুসরণ করার জন্য এখন চরিত্রটি সর্বাধিক সম্ভাব্য (অর্থাৎ সর্বোচ্চ সম্ভাবনা) সন্ধান করুন। সর্বোচ্চ = উচ্চতম * প্রব 2 সেট করুন ।
      • স্পষ্টতই, PROB 2 > = PROB 1

প্রতিটি লাইনের জন্য আপনার একটি প্রকৃত ও উচ্চ মানের হওয়া উচিত। উচ্চতর দ্বারা ACTUAL ভাগ করুন। এটি আপনাকে কোনও নির্দিষ্ট রেখার উত্স কোড কিনা তা ফিটনেস স্কোর দেয়। এটি আপনার দেওয়া উদাহরণের প্রতিটি লাইনের সাথে একটি সংখ্যা যুক্ত করবে:

my problem is I need to change the database but I don't won't to create // 0.0032
a new connection. example: // 0.0023

DataSet dsMasterInfo = new DataSet(); // 0.04
Database db = DatabaseFactory.CreateDatabase("ConnectionString");   // 0.05
DbCommand dbCommand = db.GetStoredProcCommand("uspGetMasterName");  // 0.04

শেষ অবধি, পোস্টে কোড রয়েছে কিনা তা নির্ধারণ করার জন্য আপনাকে একটি প্রান্তিক নির্বাচন করতে হবে। এটি কেবল পর্যবেক্ষণ দ্বারা নির্বাচিত একটি সংখ্যা হতে পারে যা উচ্চ কার্যকারিতা দেয়। এটি একটি উচ্চ স্কোর সহ লাইনের সংখ্যাও ધ્યાનમાં নিতে পারে।

প্রশিক্ষণ

প্রশিক্ষণের জন্য, ভাষাতে কোডের একটি বৃহত, প্রতিনিধি নমুনা সংগ্রহ করুন। কোড পাঠ্যটি লুপ করতে একটি প্রোগ্রাম লিখুন এবং পরবর্তী অক্ষরের পরিসংখ্যানের ফ্রিকোয়েন্সিটির সাথে ফাইলের প্রতিটি এন-গ্রাম সংযুক্ত করুন (এন এর জন্য পরিসরটি পরামিতি করা উচিত) be এটি বিগ্রামকে অনুসরণ করে এমন একাধিক সম্ভাব্য অক্ষরের অক্ষর দেবে, যার প্রতিটি সম্ভাবনার সাথে যুক্ত। উদাহরণস্বরূপ, বিগ্রাম "()" এর কিছু নিম্নলিখিত বর্ণের সম্ভাবনা থাকতে পারে:

"()" 0.5-> ";"
"()" 0.2-> "."
"()" 0.3-> "{"

প্রথমটি পড়তে হবে, উদাহরণস্বরূপ "" একটি সেমিকোলন খালি প্যারেন্টিথিকাল অনুসরণ করে এমন সম্ভাবনা 0.5 হয়। "

প্রশিক্ষণের জন্য, আমি এন-গ্রাম আকারের পাঁচ থেকে পাঁচয়ের প্রস্তাব করছি। ফিরে যখন আমি এই নিয়ে কিছু গবেষণা করেছি , আমরা দেখতে পেলাম যে এন-গ্রাম আকার দুইয়ের মধ্যে পাঁচটি ইংরেজির জন্য ভাল কাজ করেছে। যেহেতু সোর্স কোডটি বেশিরভাগই ইংরেজী, তাই আমি এই সীমাটি দিয়ে শুরু করার পরামর্শ দিই এবং তারপরে আপনি কী কাজ করে তা খুঁজে পাওয়ার জন্য সর্বোত্তম প্যারামিটার মানগুলি সন্ধান করার জন্য সামঞ্জস্য করব।

একটি সতর্কতা: মডেল শনাক্তকারী, পদ্ধতির নাম, সাদা স্থান এবং ইত্যাদি দ্বারা প্রভাবিত হতে চলেছে তবে, আপনি প্রশিক্ষণের নমুনার কিছু বৈশিষ্ট্য বাদ দিতে প্রশিক্ষণটি টিউন করতে পারেন। উদাহরণস্বরূপ, আপনি সমস্ত অপ্রয়োজনীয় সাদা স্থান ভেঙে যেতে পারেন। ইনপুট (স্ট্যাক ওভারফ্লো পোস্ট) এর সাদা জায়গার উপস্থিতিও এড়ানো যায়। আপনি বর্ণমালার ক্ষেত্রেও উপেক্ষা করতে পারেন, যা বিভিন্ন ধরণের সনাক্তকারী নামকরণের কনভেনশনগুলির ক্ষেত্রে আরও দৃ res় হয়।

আমার গবেষণার সময় , আমরা দেখতে পেলাম যে আমাদের পদ্ধতিগুলি স্প্যানিশ পাশাপাশি ইংরেজির পক্ষেও ভাল কাজ করে। আমি দেখতে পাচ্ছি না কেন এটি উত্স কোডের জন্য কেন ভাল কাজ করে না। উত্স কোড মানব ভাষার চেয়ে আরও কাঠামোগত এবং অনুমানযোগ্য।


2
কেবলমাত্র আমি মনে করি সমস্যাটি হ'ল সম্ভাবনাগুলি আপনার খেলনা উদাহরণের তুলনায় অনেক ছোট হবে । সংখ্যাগত অস্থিতিশীলতা দেওয়া, এর অর্থ শীঘ্রই সমস্ত সম্ভাবনা 0 হয় are লগ প্রতিক্রিয়াগুলি ব্যবহার করে এটি সলভ হয়। তদুপরি, আমি বৃহত্তর টোকেন ব্যবহার করব (অর্থাত অক্ষর নয় তবে শব্দ / বিরামচিহ্ন)।
কনরাড রুডলফ

2
@ কনরাড: এখানে ধারণাটি নিখুঁত সম্ভাবনাগুলি পরীক্ষা করার নয়: এটি আপেক্ষিক সম্ভাবনার পরীক্ষার জন্য। প্রতিটি লাইনের জন্য, সেই লাইনের পাঠ্যটি সম্ভবত কোনও ইংরেজি ভাষার মডেল বা কোনও কোড ভাষা মডেল দ্বারা উত্পাদিত হতে পারে।
কেন ব্লুম

5
আপনি এই মডেলটি বিদ্যমান এসও পোস্টগুলিতে প্রশিক্ষণ দিতে পারেন (বিশেষত কারণ যে আপনাকে মার্কডাউন সিনট্যাক্সের জন্য অ্যাকাউন্টের প্রয়োজন হতে পারে)। আপনি যদি ধরে নেন যে সর্বাধিক পোস্টগুলি সঠিকভাবে ফর্ম্যাট করা হয়েছে (বা আপনি হাজার হাজার লোকের অর্ডারে সঠিক আকারে ফর্ম্যাট করা হয়নি এমন পোস্টগুলি সরাতে পোস্টগুলি সংগ্রহ করেছেন), তবে আপনি ধরে নিতে পারেন যে কোডটি বিন্যাসিত নয় এমন স্টাফ ইংরেজি পাঠ্য , এবং স্টাফ কোড যা কোড ফর্ম্যাট করা হয় তা কোড, আপনি আসল এসও উত্তরগুলি থেকে প্রশিক্ষণ নিতে পারেন।
কেন ব্লুম

1
এটি কীভাবে করবেন সে সম্পর্কে একটি টিউটোরিয়াল (জাভাতে লিংপাইপ ব্যবহার করে) লিংপাইপের ওয়েবসাইট থেকে উপলব্ধ । টিউটোরিয়ালটির শেষে, এই সমস্যাটি মোকাবেলার জন্য কৌশল সম্পর্কিত অনেকগুলি কাগজপত্র রয়েছে। আমি সেগুলি পড়ার পরামর্শ দিচ্ছি।
কেন ব্লুম

1
এটি দেখতে আকর্ষণীয় যে শিল্পের সমাধানের রাজ্যের কেবলমাত্র খুব কম ভোটের গণনা রয়েছে, এবং এই সমস্ত অ্যাড-হকের সমাধানগুলির চেয়ে অনেক কম রেট রয়েছে যা স্বীকার করা যায় যে কেবল যথেষ্ট ভাল হতে পারে তবে বিশেষ ক্যাসিংয়ের উপর অনেক নির্ভর করে এবং সহজাতভাবে রয়েছে overfitting প্রবণ।
কনরাড রুডল্ফ

13

আমি কি একেবারে ভিন্ন পদ্ধতির পরামর্শ দিতে পারি? সুতরাং শুধুমাত্র একমাত্র মানব-ভাষা অনুমোদিত ইংরেজী, সুতরাং অ-ইংরাজী যে কোনও কিছুতে কোড স্নিপেট হওয়ার সম্ভাবনা 99.9%

সুতরাং আমার সমাধানটি হ'ল: বহু ইংরাজী ভাষা-চেকারগুলির মধ্যে একটি ব্যবহার করুন (কেবলমাত্র তারা নিশ্চিত করে নিন - ভুল বানানগুলির পাশে - ডাবল ডটসের মতো সিনট্যাক্স ভুল, বা ভাষা-জাতীয় চিহ্ন যেমন #বা এটি ~)। তারপরে যে কোনও লাইন / অনুচ্ছেদে বিপুল পরিমাণে ত্রুটি এবং সতর্কতা ছুঁড়ে ফেলেছে "এটি কি এই কোড?" প্রশ্ন।

এই স্ট্যাক এক্সচেঞ্জ সাইটের জন্য অবশ্যই ইংরাজী ছাড়া অন্য ভাষা ব্যবহার করা যেতে পারে approach

শুধু আমার 2 ¢ ...


16
সমস্যাটি হ'ল আগত অনেকগুলি প্রশ্নই হয় ইংরেজি নয় (যদিও তারা এটি সাদৃশ্যযুক্ত)।
ব্রেন্ডন লং

3
@ ব্রেন্ডান - তারপরে এই প্রস্তাবটির সুবিধা যুক্ত করুন: সম্ভবত পোস্টের ইংরেজী অংশে-উদ্দেশ্য-হতে-করা অংশগুলিতে ভুলগুলি আন্ডারলাইন করুন (বা হাইলাইট করুন) এবং লেখককে ইংরেজিতে লিখতে সহায়তা করুন! ;)
ম্যাক

1
আমি ডাচ এবং আমার কোড কোডের সমস্ত কিছুই ইংরেজী ভাষায়, মন্তব্যে নয় (প্রকল্পের উপর নির্ভর করে)। সুতরাং অ-ইংরেজি অবশ্যই কোডটি যথেষ্ট হবে না। তার মানে বা আপনি বোঝাতে চাইছেন যে ভাঙা ইংরেজি অবশ্যই কোড হতে হবে।
আইভো লিমেন

@ আইভো - আমার মন্তব্যটি ভাঙ্গা ভাঙ্গা ইংরাজির ইস্যুতে কৌতুক করে সম্বোধন করা হয়েছিল! ;) তবে আমি বলব যে আমার প্রস্তাবের সাথে অন্য ভাষায় মন্তব্যগুলি ঠিক কাজ করবে ... ইংরেজিতে OTOH ব্লক মন্তব্যগুলি "এই কোডটি কি?" ট্রিগার করবে না? প্রশ্ন, তবে এটি ঠিক আছে কারণ যে কোডটির জন্য মন্তব্যটি লেখা হয়েছে তা ইতিমধ্যে এটি ট্রিগার করেছিল ...
ম্যাক

11

আমি সম্ভবত এর জন্য কয়েকটি নিচে ভোট পেতে যাচ্ছি তবে আমি মনে করি আপনি এটি ভুল কোণ থেকে পৌঁছে যাচ্ছেন।

এই লাইনটি আমাকে পেয়েছে:

লোকেরা andুকে যেতে হবে এবং ম্যানুয়ালি এমন লোকদের কোড কোড ফর্ম্যাট করে যা কোনওরকমে এটি বের করতে অক্ষম

আইএমও যে স্ট্যান্ডপয়েন্টটি একরকম অহংকারী। আমি এটি সফ্টওয়্যার ডিজাইনে অনেক খুঁজে পেয়েছি যেখানে প্রোগ্রামার এবং ডিজাইনাররা এমন ব্যবহারকারীদের সাথে বিরক্ত হন যারা এই সফ্টওয়্যারটি কীভাবে সঠিকভাবে ব্যবহার করবেন তা বুঝতে পারেন না, যখন সমস্যাটি ব্যবহারকারী নয় তবে নিজেই সফটওয়্যার - বা ইউআই অন্তত।

এই সমস্যার মূল কারণ ব্যবহারকারী নয় বরং সত্য যে তারা এটি করতে পারে তা তাদের কাছে স্পষ্ট নয়।

এটি আরও সুস্পষ্ট করার জন্য ইউআই-তে পরিবর্তন সম্পর্কে কীভাবে? অবশ্যই এটি হবে:

  1. নতুন ব্যবহারকারীদের ঠিক কী করা উচিত তা তাদের কাছে আরও স্পষ্ট
  2. আপনার পক্ষে অনেকগুলি ভাষার কোড লজিক সনাক্ত করতে জটিল অ্যালগরিদমগুলি লেখার চেয়ে তৈরি করা সহজ

উদাহরণ:

এখানে চিত্র বর্ণনা লিখুন


26
আসলে এই আইএমওটি "আমার একটি সমস্যা আছে দয়া করে আমাকে সহায়তা করুন, কোডটি নীচে রয়েছে" এর মতো দুর্বল প্রশ্নগুলিকে প্রয়োগ করে - খুব কমই কোডটি প্রশ্ন থেকে আলাদা করা দরকার needs সেরা প্রশ্নগুলি এর মতো হয় "আমি এটি অর্জন করতে চাই এবং কোডের এই দুটি লাইন লিখেছি, তবে এর প্রভাবটি হ'ল সমস্যাটি কী" - খুব সরল ভাষার সাথে ভারী আন্তঃলিবিযুক্ত খুব কম কোড রয়েছে।
শার্পটোথ

4
তোমার রুট পর্যবেক্ষণ সঠিক রয়েছে কিন্তু আপনার রোগ নির্ণয়, তবুও ভুল: আসলে, জেফ হয় এই পদ্ধতির মাধ্যমে ইউজার ইন্টারফেস উন্নত করার চেষ্টা করছে। তদুপরি, বর্তমান ইউআই ইতিমধ্যে বেশ কয়েকটি চক্র অতিক্রম করেছে এবং আমি সন্দেহ করি না যে এটির উন্নতি হতে পারে (তীব্রভাবে), আমি সন্দেহ করি যে এটি অলস বোকাদের বিরুদ্ধে সহায়তা করবে। আপনার প্রস্তাবিত সমাধানও হবে না। পছন্দ করেছেন
কনরাড রুডলফ

2
বাক্সটি চিন্তা করার জন্য আমি +1 করব তবে আমি নির্দিষ্ট পরামর্শের সাথে একমত নই, যেহেতু "সমর্থনকারী কোড" পোস্ট করা একটি প্রশ্ন প্রবাহকে অপ্রাকৃত হতে পারে যা অপ্রাকৃত হতে পারে। আমি কখনই আমার প্রশ্নের নীচে কোডে ফেলেছি না। আমি প্রায় সবসময় একটি ভূমিকা, নমুনা কোড, তারপরে আসল প্রশ্ন পোস্ট করি। যদি আপনি এই ভিত্তিটি স্বীকার করেন যে ইনলাইন কোড অপরিহার্য, তবে কিছু ধরণের ফর্ম্যাটিং প্রয়োজন - ফর্ম্যাটিং যা অবশ্যই ব্যবহারকারী দ্বারা প্রবেশ করাতে হবে বা সিস্টেম দ্বারা প্রস্তাবিত হওয়া উচিত। এবং জেফ এটি সম্পর্কে ঠিক জিজ্ঞাসা করছে।
নিকোল

1
@ কনরাড: আমার উপরোক্ত মন্তব্য এবং আপনার প্রতিক্রিয়া হিসাবে আমি বিশ্বাস করি না যে জেফ এই পথটি অবলম্বন করে ইউআই উন্নতি করছে, তবে কেবল অন্তর্নিহিত সমস্যার লক্ষণগুলির চিকিত্সা করছে। যদি ইউআই উন্নত করা হয় যাতে ভুলটি না করা যায়, তবে ব্যবহারকারীকে সতর্ক করার সমাধানের প্রয়োজন হবে না। আমি কোনও বিভ্রান্তির মধ্যে নেই যে আমার উদাহরণটি চূড়ান্ত সমাধান তবে কিছু চিন্তাভাবনার প্রশ্নে যাওয়া দরকার "আমরা কি এটি সর্বোত্তম উপায়ে উপস্থাপন করছি?"
matt_asbury

1
সহজ বাক্যটি দয়া{} করে পাঠ্য বাক্সের চারপাশে বোতামটি ব্যবহার করে কোড চিহ্নিত করুন যথেষ্ট হতে পারে।
পাওলো ইবারম্যান

11

সিউডো কোডটি একটি সত্যিকারের চ্যালেঞ্জ হয়ে উঠবে কারণ সমস্ত প্রোগ্রামিং ভাষা বিশেষ অক্ষরের উপর নির্ভর করে যেমন '[]', ';', '()' ইত্যাদি ইত্যাদি কেবল এই বিশেষ অক্ষরের উপস্থিতি গণনা করে। ঠিক যেমন আপনি একটি বাইনারি ফাইল শনাক্ত করতে পারবেন (একটি নমুনার 5% এরও বেশি বাইট মান 0 রয়েছে)।


[] () এর মতো এই বিশেষ চরগুলির গ্রুপ থাকার চেয়ে আমি এটিকে আরও উন্নত করব; {} =। এই গ্রুপগুলির মধ্যে 2-3 টিরও বেশি রয়েছে এমন প্রতিটি লাইন কোডের একটি লাইন।
হুনজা

... এবং সর্বাধিক প্রচলিত ভাষায় সাধারণ স্ট্রিংগুলিও সন্ধান করুন, যেমন "= কিছু শব্দ ();" বেশিরভাগ কোঁকড়ানো বন্ধনী ভাষার জন্য, এক্সএমএল-এর মতো সিনট্যাক্স যেমন "<something>" এবং "<ab: cde>", এবং অন্যান্য ভাষায় অন্যান্য সাধারণ স্ট্রিং। আমি বিশ্বাস করি যে সাধারণ সিনট্যাক্সের কিছু ধরণের অনুসন্ধানের টেবিলটি একটি ভাল সমাধান হতে পারে, আপনি যখন নতুন ভাষা প্রয়োগ করতে চান তবে আপনি এটি প্রসারিত করতে পারেন।
Systad

আপনার সম্ভবত ছদ্ম কোডটি ফেলে দেওয়া উচিত। কিছু লোক এটিকে সি-স্টাইলের ভাষা হিসাবে লিখতে পছন্দ করেন তবে অন্যান্য লোকেরা ভিবি 6
জেমস পি।

4

আমি মনে করি আপনার কেবলমাত্র নির্দিষ্ট ভাষার বিরুদ্ধে এটির টার্গেট করার প্রয়োজন হতে পারে, সাধারণভাবে এই সমস্যাটি সম্ভবত অবিচল হতে পারে কারণ আপনি যে ভাষাগুলি ইংরেজির সাথে বেশ মিল রয়েছে (যেমন ইনফরমেশন 7 ) পেতে পারেন। তবে ভাগ্যক্রমে সর্বাধিক ব্যবহৃত বিষয়গুলি মোটামুটি সহজেই কভার করা যেতে পারে।

আমার প্রথম কাটাটি ক্রমটি সন্ধান করা হবে ";। N" যা আপনাকে সি, সি ++, জাভা, সি # এবং অন্য যে কোনও ভাষার জন্য অনুরূপ বাক্য গঠন ব্যবহার করে এবং এটি খুব সহজ simple এটি ইংরেজীতে ক এর চেয়ে কম ব্যবহৃত হয়; একটি নতুন লাইন ছাড়া


প্লাস হতে পারে প্রচুর পরিমাণে কোঁকড়া ধনুর্বন্ধনী; পি
মার্ক গ্রাভেল

1
জেফ তার পোস্টে যেমন বলেছে, তারা সম্ভবত কেবল প্রধান ভাষাগুলিকেই টার্গেট করবে। এবং যাই হোক না কেন, আমি সন্দেহ করি যে নতুন ব্যবহারকারীরা (যাদের জন্য এই কার্যকারিতাটি তৈরি করা হয়েছে) সি # বা জাভাস্ক্রিপ্ট পোস্ট করার চেয়ে বেশি সম্ভাবনা পাবেন, বলুন, ইন্টারকল ;-)
বেন

হ্যাঁ তবে এটি ব্র্যাংফুক বা ব্ল্যাক প্রোগ্রামিং ভাষার সাথে কাজ করবে না। ;-)
আইভো লিমেন

4

কেউ ট্যাগগুলি দেখার জন্য এবং তারপরে সিনট্যাক্সের সন্ধানের কথা উল্লেখ করেছিলেন তবে এটি গুলি করা হয়েছে কারণ এটি নতুন ব্যবহারকারীদের লক্ষ্য।

একটি সম্ভাব্য আরও ভাল সমাধান হ'ল প্রশ্নের শিরোনামে ভাষার নামগুলি অনুসন্ধান করা, তারপরে একই কৌশল প্রয়োগ করা। যদি আমি "জাভাস্ক্রিপ্ট", "জাভা" বা "সি #" উল্লেখ করি তবে সেই প্রশ্নটি যা হয় সে সম্পর্কে সম্ভাবনা এবং প্রশ্নটিতে কোডটি সম্ভবত সেই ভাষায়ই থাকে।


বিশেষত যদি শিরোনামটি "ভিবি সি #। নেট ডট নেট আমাকে সাহায্য করুন !!!"
নিক অল্ডউইন

1

প্রথমে বানান চেকের মাধ্যমে এটি চালান, এটি খুব কম যথাযথ ইংরেজী শব্দ খুঁজে পাবে, তবে এমন অনেক শব্দের থাকা উচিত যা স্পেলচেকার বিভক্ত হওয়ার পরামর্শ দেয়।

তারপরে বিরামচিহ্ন / বিশেষ অক্ষরগুলি সরল ইংরেজির জন্য আদর্শ নয়, কোডের জন্য আদর্শ:

  • something(); শুধু সরল ইংরেজী হতে পারে না;
  • $somethingsomethingসমস্ত সংখ্যা যেখানে না;
  • -> শব্দের মধ্যে ডাব্লু / ও স্পেস;
  • . শব্দের মধ্যে ডাব্লু / ও স্পেস;

অবশ্যই এটি ভালভাবে কাজ করার জন্য আপনি এই বৈশিষ্ট্যের শীর্ষে বায়েশিয়ান শ্রেণিবদ্ধ তৈরি করতে চাইবেন।


1
() সমন্বিত একটি অ ইন্ডেন্টেড লাইন সনাক্তকরণ; বার্তাটি পরামর্শ দেওয়ার জন্য একটি ভাল কারণ হবে।

কোডটি আটকানোর আগে কোন বানান পরীক্ষক চোক বন্ধ করবেন না?
টিম পোস্ট

অ-নেটিভ ইংরেজী লেখকদের লেখা কিছু বার্তাগুলির সাথে, বানান
যাচাইকারী

@ পিএইচ: এই প্রশ্ন / উত্তরগুলি যাইহোক এসও তে গৃহীত হয় না।
ভের্টেক

1

ভাষার বেশ কয়েকটি সেট রয়েছে যা একই রকম সিনট্যাক্স ভাগ করে। বেশিরভাগ ভাষাগুলি কয়েকটি ভাষার দ্বারা প্রভাবিত হয়ে গেছে, সুতরাং [AMPL, AWK, csh, C ++, C--, C #, উদ্দেশ্য-সি, বিটসি, ডি, গো, জাভা, জাভাস্ক্রিপ্ট, লিম্বো, এলপিসি, পার্ল, পিএইচপি, পাইক, প্রসেসিং [সমস্তগুলি সি দ্বারা প্রভাবিত হয়েছিল, সুতরাং আপনি সি সনাক্ত করলে আপনি সম্ভবত এই সমস্ত ভাষা সনাক্ত করতে পারবেন। সুতরাং এই ভাষা-সেটগুলি সনাক্ত করার জন্য আপনার কেবল একটি সাধারণ প্যাটার্ন লিখতে হবে।

আমি পাঠ্যটিকে ব্লকগুলিতেও বিভক্ত করতাম কারণ সর্বাধিক কোড দুটি নতুন লাইন দ্বারা ভাগ করা হবে বা পোস্টের অন্যান্য পাঠ্য ব্লকগুলির অনুরূপ।

এটি জাভাস্ক্রিপ্ট (সি পরিবারের জন্য একটি অসম্পূর্ণ অসম্পূর্ণ নমুনা) দিয়ে সহজেই করা যায়:

var txt = "my problem is I need to change the database but I don't won't to create a new connection. example:\n\nDataSet dsMasterInfo = new DataSet();Database db = DatabaseFactory.CreateDatabase(&quot;ConnectionString&quot;);DbCommand dbCommand = db.GetStoredProcCommand(&quot;uspGetMasterName&quot;);";
var blocks = txt.split(/\n\n/gi); console.dir(blocks);
var i = blocks.length;
var cReg = /if\s*\(.+?\)|.*(?:int|char|string|short|long).*?=.+|while\s*\(.+?\)/gi;

while ( i-- ){
   var current = blocks[i];
   if ( cReg.test( current ) ){
      console.log("found code in block[" +  i + "]");
   }
}

0

প্রতিটি লাইনের জন্য কেবল শব্দ / বিরামচিহ্ন অক্ষর গণনা করুন। ইংরাজীতে 4 বা ততোধিক কোড থাকে 2 এর চেয়ে কম কোড থাকে।

উপরের অনুচ্ছেদে 18 টি শব্দ রয়েছে এবং উদাহরণস্বরূপ 4 টি বিরামচিহ্ন রয়েছে। এই অনুচ্ছেদে 19 টি শব্দ এবং 4 বিরামচিহ্ন রয়েছে, সুতরাং প্রত্যাশাগুলির মধ্যে।

অবশ্যই, নবাগত ইংরাজী স্পিকার প্রশ্নগুলির বিরুদ্ধে এটি পরীক্ষা করা দরকার, এবং এটি হতে পারে যে এই ক্ষেত্রেগুলির পরিসংখ্যানগুলি ত্রুটিযুক্ত।

আমি প্রত্যাশা করি যে [নন-হোয়াইটস্পেস] [

আমি মনে করি সবচেয়ে বড় সমস্যাটি ইনলাইন কোড হবে, যেখানে কেউ এমন প্রশ্ন জিজ্ঞাসা করবে:

যদি আমি (i = 0; i> 100; i ++) say for এর অর্থ কী?

এটি কোড এবং ইংরেজি এবং ব্যাক-টিক্সের মতো চিহ্নিত করা উচিত:

আমি যদি বলি for (i=0; i>100; i++) {}তার মানে কী?


0

আমি মনে করি আপনার প্রথমে (পর্যাপ্ত) ফর্ম্যাট কোডের মধ্যে একটি পার্থক্য করা উচিত যা কেবলমাত্র এরূপ হিসাবে চিহ্নিত করা দরকার, এবং (খুব) দুর্বল ফর্ম্যাট কোড, যা ম্যানুয়াল বিন্যাস প্রয়োজন যাইহোক needs

ফর্ম্যাট কোডটিতে ব্রেকলাইনস এবং ইনডেন্টেশন রয়েছে। তা হ'ল: যদি কোনও লাইনটি একটি একক ব্রেকলাইন এর আগে থাকে তবে আপনার ভাল প্রার্থী রয়েছে। যদি এর উপরে শীর্ষস্থানীয় সাদা স্থান থাকে তবে আপনার খুব ভাল প্রার্থী রয়েছে have

সাধারণ পাঠ্যে দুটি ব্রেকলাইন বা দুটি স্পেস এবং বিন্যাসের জন্য একটি ব্রেকলাইন ব্যবহার করা হয়, সুতরাং পার্থক্যের জন্য একটি পরিষ্কার মাপদণ্ড রয়েছে।

এলআইএসপি কোডে আপনি সেমিকোলনগুলি খুঁজে পাবেন না, রুবি কোডে আপনি প্রথম বন্ধনী খুঁজে পাবেন না, সিউডো কোডে আপনি খুব বেশি খুঁজে পাবেন না। তবে যে কোনও (অ-গৌরবহীন) ভাষায় আপনি ব্রেকলাইন এবং ইনডেন্টেশন সহ ফর্ম্যাট করার জন্য শালীন কোড পাবেন। এর মতো সর্বজনীন কিছুই নেই। কারণ শেষ কোডটি হচ্ছে, মানুষের দ্বারা পড়ার জন্য লিখিত।

সুতরাং প্রথমে কোডের সম্ভাব্য লাইনগুলি অনুসন্ধান করুন । এছাড়াও কোডের লাইনগুলি সাধারণত গ্রুপে আসে। আপনার যদি একটি থাকে তবে একটি ভাল সুযোগ আছে যে উপরে বা নীচের একটি কোডের একটি লাইনও।

আপনি কোডের সম্ভাব্য লাইনগুলি এককভাবে তৈরি করার পরে, আপনি তাদের পরিমাণের মানদণ্ডের বিপরীতে পরীক্ষা করতে পারেন এবং কিছু থ্রেশহোল্ড চয়ন করতে পারেন :

  • শব্দহীন অক্ষরের ফ্রিকোয়েন্স
  • শনাক্তকারীদের ফ্রিকোয়েন্স: খুব ছোট শব্দ বা ক্যামেলকেস বা আন্ডার_স্কোর শৈলীর সাথে খুব দীর্ঘ শব্দ
  • অস্বাভাবিক শব্দের পুনরাবৃত্তি

এছাড়াও, এখন যেহেতু প্রোগ্রামারস এবং সিএস রয়েছে, স্ট্যাকওভারফ্লো এর পরিধিটি স্পষ্টভাবে সঙ্কুচিত। কেউ সমস্ত ভাষার ট্যাগকে ভাষা হিসাবে চিহ্নিত করার বিষয়টি বিবেচনা করতে পারেন। এবং পোস্ট করার সময়, আপনাকে কমপক্ষে একটি ভাষার ট্যাগ বাছাই করতে বলা হবে, চয়ন করুনlanguage-agnostic ট্যাগটি বা স্পষ্টভাবে বাদ দিতে বলা হবে।

প্রথম ক্ষেত্রে আপনি জানেন যে কোন ভাষাগুলির সন্ধান করতে হবে, দ্বিতীয় ক্ষেত্রে আপনি সিউডো কোডটি সন্ধান করতে চাইতে পারেন এবং শেষের ক্ষেত্রে সম্ভবত কোনও কোড থাকবে না কারণ এটি কোনও প্রযুক্তি সম্পর্কিত বা একটি প্রশ্ন সম্পর্কিত কাঠামো বা যেমন।


0

আপনি যে ভাষাটি সনাক্ত করতে চান তার জন্য আপনি একটি পার্সার তৈরি করতে পারেন (এএনটিএলআর জন্য ভাষার সংজ্ঞা সাধারণত খুঁজে পাওয়া সহজ), তারপরে প্রতিটি পার্সারের মাধ্যমে প্রশ্নের প্রতিটি লাইন চালান। যদি কোনও লাইন সঠিকভাবে বিশ্লেষণ করে তবে আপনার সম্ভবত কোড রয়েছে।

এটির সাথে সমস্যাটি হ'ল কিছু ইংরাজী (প্রাকৃতিক ভাষা) বাক্য কোড হিসাবে বিশ্লেষণ করতে পারে, তাই আপনি অন্যান্য কিছু ধারণাগুলিও অন্তর্ভুক্ত করতে চাইতে পারেন, বা এক বা দুটি ধারাবাহিক লাইনের সাথে সঠিকভাবে পার্স করলেই আপনি ইতিবাচক ফলাফল সীমাবদ্ধ করতে পারেন could একই ভাষা পার্সার।

অন্যান্য সম্ভাব্য সমস্যাটি হ'ল এটি সম্ভবত সিউডোকোড বাছাই করবে না, তবে এটি ঠিক আছে।


প্রায়শই লোকের কোডে সিনট্যাক্স ত্রুটি থাকে (এবং এটি সম্পর্কে জিজ্ঞাসা করছেন)।
পাওলো ইবারম্যান

0

ভবিষ্যতের প্রুফ কী হতে পারে এবং দীর্ঘমেয়াদে ন্যূনতম ম্যানুয়াল অ্যাডজাস্টমেন্টের প্রয়োজন হতে পারে, কারণ অন্যান্য ভাষা (যা বর্তমানে ব্যবহৃত প্রোগ্রামিং ভাষার চেয়ে কিছুটা আলাদা দেখায়) আরও জনপ্রিয় হয়ে ওঠে এবং বর্তমানে ব্যবহৃত ভাষাগুলি কম জনপ্রিয় হয়, তা করার জন্য গুগল ট্রান্সলেট যা কিছু করে ( যেমন "এটি কীভাবে কাজ করে?" শিরোনামের অনুচ্ছেদ দেখুন) এর পরিবর্তে অ্যাব এবং এ () ইত্যাদির মতো কিছু অনুসন্ধান না করে

অন্য কথায়, সন্ধানের জন্য কোডটিতে পাওয়া নিদর্শনগুলির ম্যানুয়ালি চিন্তা না করে কম্পিউটার নিজেই এটি বের করতে পারে । এটি থাকার মাধ্যমে করা যেতে পারে

  1. বিভিন্ন বিভিন্ন প্রোগ্রামিং ভাষায় প্রচুর কোড

    • পরামর্শ: ওয়েব-ভিত্তিক উত্স কোড রিপোজিটরিগুলি যেমন গুগল কোড বা গিথুব, বা স্ট্যাকওভারফ্লোতে ইতিমধ্যে কোড হিসাবে চিহ্নিত হিসাবে নেওয়া থেকে কোড নমুনাগুলি স্বয়ংক্রিয়ভাবে গ্রহণ করুন

    • দ্রষ্টব্য: কোড মন্তব্য পার্স করা ভাল ধারণা হতে পারে

  2. ওয়েবে নিবন্ধ থেকে নেওয়া প্রচুর ইংরেজি পাঠ্য

    • যদিও প্রোগ্রামিং সম্পর্কিত নিবন্ধগুলি থেকে নয় (অন্যথায় তাদের মধ্যে কোড থাকতে পারে এবং সিস্টেমটি মিশ্রিত করতে পারে :-))

এবং কোনও ধরণের অ্যালগরিদম থাকার পরে ইংরেজিতে নেই এমন কোডগুলিতে স্বয়ংক্রিয়ভাবে প্যাটার্নগুলি সন্ধান করে এবং তদ্বিপরীতভাবে এবং পোস্টগুলিতে অ্যালগরিদম চালিয়ে কোডটি কী এবং কোড কী নয় তা সনাক্ত করার জন্য এই নিদর্শনগুলি ব্যবহার করে।

(তবে এই ধরণের অ্যালগোরিদম কীভাবে কাজ করবে তা সম্পর্কে আমি নিশ্চিত নই। বর্তমান প্রশ্নের অন্যান্য উত্তরে এর জন্য দরকারী তথ্য থাকতে পারে))

তারপরে কোডটি সেই বিন্দুটির সময়ে যেভাবে দেখায় সেই পরিবর্তনের জন্য সিস্টেমটি একবারে একবারে কোডটি আবার স্ক্যান করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.