سرد الكلمات الفريدة
جملة من 13 كلمة مثل «The quick brown fox jumps over the lazy dog. The fox is quick!» تترك 9 كلمات مختلفة، بترتيب ظهورها الأول ودون تكرار تنظّفه يدويًا. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
سرد الكلمات الفريدة أداة نص صغيرة بوعد منتج واضح: أخذ نص غير فارغ، وتقسيمه إلى كلمات، وإسقاط التكرارات، وإعادة الرموز المتبقية بترتيب ظهورها الأول. يستخدمه الكتّاب لتدقيق المفردات والمعلمون لبناء بنوك كلمات والأنابيب لبناء مجموعات اختبار مستقرة دون إعادة تنفيذ التجزئة في كل لغة. تدعم هذه القدرة وضعًا اختياريًا غير حساس لحالة الأحرف بحيث يُحسب Hello وhello كمدخل واحد مع الحفاظ على أول شكل سطحي كتبتموه. يفشل الإدخال الفارغ بإدخال غير صالح حتى لا يخزّن المستدعون حمولات طولها صفر بالخطأ.
ما تعنيه الكلمات الفريدة وكيف يُحفظ ترتيب الظهور
تجيب قائمة الكلمات الفريدة عن نية بحث يكتبها الناس كل يوم: سرد كلمات فريدة من نص، أو استخراج قائمة كلمات بلا تكرار، أو الحصول على مفردات بترتيب القراءة. تعرّف هذه القدرة الكلمة كسلسلة متصلة من أحرف أو أرقام Unicode، مع إمكانية الربط بفاصلة عليا أو واصلة داخلية حتى تبقى الاختصارات والمركّبات بالواصلة رمزًا واحدًا. كل ما سوى ذلك — مسافات وفواصل ونقاط وفواصل إيموجي وترقيم — حدود.
بالمسح من اليسار إلى اليمين يُحتفظ بكل رمز فقط أول مرة تُرى فيها مفتاح فرادته؛ وتُستبعد التكرارات اللاحقة. عندما يكون الوضع غير الحساس لحالة الأحرف مفعّلًا يكون مفتاح الفرادة الشكل الصغير، لكن القائمة تخزّن أول إملاء سطحي لتبقى أول إشارة بحالة العنوان مقروءة في الواجهات. عندما يكون الوضع متوقفًا يكون Hello وhello مدخلين منفصلين إن ظهرا.
الترتيب دائمًا أول ظهور لا أبجديًا، لأن جداول التكرار والمقالب المرتبة نية منتج مختلفة. فضّلوا أداة list-unique-words هذه عندما تريدون لقطة مفردات مرتبة مستقرة. لا تستخدمها لكلمات SEO المصنّفة أو الجذع أو إزالة كلمات التوقف أو تقسيم الجمل — تلك الصفحات تخدم استعلامات أخرى.
حالات الاستخدام
بنوك مفردات وبطاقات تعليم
يلصق المعلمون والمتعلمون فقرة ويحصلون على قائمة كلمات مرتبة نظيفة للبطاقات دون تنظيف يدوي للتكرار.
تدقيق مفردات المسودات
يتحقق الكتّاب من الكلمات الفريدة في مسودة وما إذا خُلطت تنويعات حالة الأحرف بين العناوين والجسم بالخطأ.
الأسئلة الشائعة
كيف أسرد الكلمات الفريدة من نص؟
مصفوفة words في الاستجابة تسرد كل كلمة فريدة بترتيب أول ظهور، وcount يساوي طول المصفوفة.
هل تزيل كلمات التوقف أو تستخرج الجذع؟
لا. تقتصر على التجزئة وإسقاط التكرارات الدقيقة (أو المطوية بالحالة) مع الحفاظ على ترتيب أول ظهور. الترتيب والجذع وقوائم كلمات التوقف خارج النطاق.
هل تُعد Hello وhello كلمة واحدة؟
نعم، افتراضيًا. يُتجاهل الفرق بين الأحرف الكبيرة والصغيرة عند كشف التكرار، لكن القائمة تحتفظ بالشكل الذي كتبته أولًا. وإذا أوقفت هذا الخيار تظهر Hello وhello مدخلين منفصلين.
لماذا لا تأتي القائمة بالترتيب الأبجدي؟
لأنها تتبع نصك: تبقى كل كلمة في موضع استخدامها الأول ولا تُرتب أبدًا. وبذلك يُحفظ ترتيب القراءة لبطاقات الحفظ ومراجعة المفردات، أما الترتيب الأبجدي أو حسب التكرار فمهمة أخرى.
هل تُقسم الكلمات المختصرة أو الموصولة بشرطة؟
لا، فالفاصلة العليا أو الشرطة داخل الكلمة تبقيها مدخلًا واحدًا. أما المسافات والفواصل والنقاط والإيموجي وعلامات الترقيم الأخرى فتفصل بين الكلمات.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/extract-unique-words \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}'const res = await fetch("https://api.kit.forhosting.com/str/extract-unique-words", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/extract-unique-words",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/extract-unique-words", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog. The fox is quick!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/extract-unique-words", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "The quick brown fox jumps over the lazy dog. The fox is quick!"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.extract_unique_words",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يعمل ودجت المتصفح المجاني بالكامل على جهازكم؛ وتفرض API المدفوعة مسبقًا $0.002 لكل عنصر ناجح عندما تحتاج الخوادم وSDK نفس العقد.
عقد الإدخال ورفض الفراغ وقراءة حقول الاستجابة
يُسمح بالنص المؤلف من مسافات فقط عندما لا يكون فارغًا: قد يُنتج صفر رموز ومصفوفة words فارغة، وهو شكل نجاح صالح. ولأن الخوارزمية منطق سلسلة خالص، يمكن لاختبارات التكامل المستمر تثبيت الكائن كاملًا. يتبع النص المصدر قواعد الاحتفاظ نفسها لعناصر parse الأخرى في KIT. أرسلوا جسم JSON بالحقل النصي الإلزامي text مضبوطًا على العينة غير الفارغة المراد تحليلها. تُقبل الأسماء البديلة input وvalue وs وcontent وbody عندما يستخدمها عملاء أقدم أو مولّدات نماذج. غياب text أو قيمة غير نصية أو سلسلة طولها صفر ترفع invalid_input برسالة تسمّي المشكلة، ولا تُحاسب تلك الإخفاقات على API المدفوعة مسبقًا. الحالة الاختيارية case_insensitive افتراضيها true؛ وتُقبل ignore_case وci وcasefold. عند النجاح تتضمن الاستجابة words كقائمة فريدة مرتبة، وcount وunique_count بنفس العدد لراحة SDK، وtotal_tokens كعدد رموز الكلمات قبل الفرادة، وcase_insensitive مرددًا الوضع المستخدم، وoriginal مرددًا الإدخال الدقيق لجداول الواجهة، وmethod دائمًا extract_unique_words حتى يفرع الكود اللاحق دون شم الأشكال. استخدموا words وحدها عندما تحتاج مجموعة بطاقات المفردات فقط؛ واستخدموا total_tokens بجانب count لإحساس سريع بمدى التكرار في المصدر. أبقوا الحمولات بأحجام مستندات عادية مناسبة لعزلة Worker لا مقالب متعددة الميغابايت؛ هذا المنتج أداة نص لا مستودع ضخم.
استخدام API والتسعير وسير العمل والحدود العملية
استدعوا أداة سرد الكلمات الفريدة المجانية في المتصفح لبنوك كلمات الواجبات وتدقيق الأسلوب وفحوصات المفردات السريعة دون كتابة سطر split-and-Set في كل لغة. سير عمل نموذجي يلصق فقرة ويسرد كلمات فريدة بوضع بلا حالة أحرف ثم يقارن بقائمة مستوى قراءة. اقرنوا هذه النقطة بأدوات كثافة الكلمات المفتاحية أو diff عندما تكون الخطوة التالية ترتيبًا أو مقارنة مسودتين، لكن أبقوا list unique words هبوطًا خاصًا حتى لا تختلط نية استخراج-قائمة-كلمات باستخراج كلمات SEO أو إحصاءات PDF. لا تتوقعوا كشف لغة أو تجذيرًا أو stemming متعدد اللغات — تلك مشاكل منفصلة بمصطلحات SEO منفصلة. استخدموا API KIT المدفوعة مسبقًا عندما يحتاج CMS أو خط محتوى أو harness لـ QA أو تطبيق تدريس أو عميل جوال نفس العقد تحت الرصيد بمبلغ $0.002 لكل عنصر ناجح؛ وإخفاقات التحقق لا تستهلك الرصيد أبدًا بعد رفض المحرك. يمكن لمؤلفي SDK توثيق text كالحقل الإلزامي الوحيد وعرض مثال نجاح بكلمات متكررة ومثال خطأ سلسلة فارغة ليرى المكاملون طرفي العقد.
حالات التكامل
fixtures لـ CI لأنابيب الرموز
تثبّت سكربتات البناء مخرجات golden للكلمات الفريدة حتى تفشل انحدارات التجزئة وطي الحالة التكامل المستمر فورًا.
أسئلة تقنية
هل يُعامل Hello وhello كنفس الكلمة؟
افتراضيًا نعم: case_insensitive بقيمة true فيشتركان في مدخل واحد ويُحتفظ بأول شكل سطحي. اضبطوا case_insensitive على false لسرد رموز متمايزة بالحالة منفصلة.
ماذا يحدث إذا كان text فارغًا؟
يفشل الطلب بـ invalid_input. الإدخال الفارغ غير مسموح؛ وإخفاقات التحقق لا تُحاسب على API المدفوعة مسبقًا.
هل أداة سرد الكلمات الفريدة مجانية؟
تعمل أداة المتصفح مجانًا على جهازكم. تستخدم استدعاءات API رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل عنصر ناجح.