**مدل بسته کلمات** (به انگلیسی: Bag-of-words model)، یک نمایش ساده است که در پردازش زبان‌های طبیعی و بازیابی اطلاعات (IR) استفاده می‌شود. همچنین به عنوان مدل فضای برداری شناخته می‌شود. در این مدل، یک متن (مانند یک جمله یا سند) به صورت یک بسته چند مجموعه از کلمات آن، بی‌توجه به دستور زبان و حتی نظم کلمات نمایش داده می‌شود. مدل بسته کلمات برای بینایی کامپیوتر (به انگلیسی: computer vision)، استفاده شده‌است. مدل بسته کلمات معمولاً در روش‌های دسته‌بندی اسناد مورد استفاده قرار می‌گیرد که در آن وقوع هر کلمه به عنوان یک ویژگی برای آموزش طبقه‌بندی آماری استفاده می‌شود. اشاره اولیه به "بسته کلمات "در زمینه زبانی را می‌توان در مقاله زالیگ هریس (به انگلیسی: Zellig Harris)، در سال ۱۹۵۴ در ساختار توزیعی یافت.

پیاده‌سازی مثال
---------------

مدل‌های زیر یک جمله متنی را با استفاده از بسته کلمات مدل می‌کنند. در اینجا دو جمله ساده وجود دارد:

1. جان دوست دارد فیلم نگاه کند مری هم فیلم دوست دارد.
2. جان دوست دارد بازی‌های فوتبال تماشا کند.

براساس این دو جمله، فهرستی به صورت زیر برای هر جمله ساخته شده‌است:

«جان»، «دوست»، «به»، «تماشا»، «فیلم»، «مری»، «دوست»، «فیلم»، «هم»

«جان»، «همچنین»، «دوست»، «به»، «تماشا»، «فوتبال»، «بازی»

نمایش هر بسته از کلمات به عنوان یک شی جی سان (به انگلیسی: JSON)، و اختصاص به متغیر جاوا اسکریپت مورد نظر:

BoW1 = {"جان": ۱، "دوست": ۲، "به": ۱، "تماشا": ۱، "فیلم": ۲، "مری": ۱، "هم": ۱}.

BoW2 = {"جان": ۱، "همچنین": ۱، "دوست": ۱، "به": ۱، "تماشا": ۱، "فوتبال": ۱، "بازی": ۱}.

هر کلید، واژه است، و هر مقدار تعداد پیشامدهای این کلمه در جمله متنی خاص است.

ترتیب عناصر آزاد است، بنابراین برای مثال {"هم": ۱، "مری": ۱، "فیلم": ۲، "جان": ۱، "تماشا": ۱، "دوست": ۲، "به": ۱}، BoW1 است. این همان چیزی است که ما از یک نمایش جامع JSON انتظار داریم.

نکته: اگر جمله دیگری شبیه به مجموع این دو موجود باشد،

جان دوست دارد فیلم تماشا کند. ماری هم فیلم دوست دارد. جان هم دوست دارد بازی‌های فوتبال تماشا کند.

نمایش جاوا اسکریپت آن به صورت زیر خواهد بود:

BoW3 = {"John":2,"likes":3,"to":2,"watch":2,"movies":2,"Mary":1,"too":1,"also":1,"football":1,"games":1};

بنابراین، همان‌طور که در جبر خطی می‌بینیم، "اجتماع "از دو سند در یک نمایش به صورت رسمی، اجتماع ناپیوسته، و جمع هر عنصر است.

{\displaystyle BoW3=BoW1\biguplus BoW2}

کاربردها
--------

در عمل، این مدل به‌طور عمده به عنوان ابزاری برای تولید ویژگی‌ها استفاده می‌شود. بعد از تبدیل متن به یک بسته کلمات، ما می‌توانیم اندازه‌های مختلف را برای مشخص کردن متن محاسبه کنیم. رایج‌ترین نوع ویژگی‌ها، یا ویژگی‌هایی که از مدل بسته محاسبه شده‌است، تکرار عبارت است، یعنی، تعداد دفعاتی که یک عبارت در متن دیده می‌شود. برای مثال بالا، ما می‌توانیم دو لیست زیر را بسازیم تا تکرارهای واژه همه کلمات متمایز را ثبت کنیم:

1. [۱، ۲، ۱، ۱، ۲، ۱، ۱، ۰، ۰، ۰]
2. [۱، ۱، ۱، ۱، ۰، ۰، ۰، ۱، ۱، ۱]

هر ورودی از لیست‌ها به شمارش ورودی مورد نظر در این فهرست اشاره دارد (این نیز نمایش هیستوگرام است). به عنوان مثال، در لیست اول (نشان دهنده جمله ۱) دو ورودی اول ۱ و ۲ هستند. اولین ورودی مربوط به کلمه «جان» است که اولین کلمه در لیست است و ارزش آن «۱» است به این دلیل که «جان» در اولین سند اولین بار ظاهر می‌شود. به‌طور مشابه، آرایه دوم مربوط به کلمه «دوست» است که کلمه دوم در لیست است و ارزش آن «۲» است زیرا «دوست» ۲ بار در جمله اول ظاهر می‌شود. این فهرست (یا بردار)، نظم کلمات را در جملات اصلی حفظ نمی‌کند، که تنها ویژگی اصلی مدل بسته کلمات است. این نوع نمایش چندین کاربرد موفق دارد، برای مثال فیلترینگ ایمیل.

با این حال، تکرارهای زیاد، لزوماً بهترین بازنمایی برای متن نیستند. کلمات مشترک مانند «و» و «است»، تقریباً همیشه با بیشترین تکرار در متن هستند؛ بنابراین داشتن یک شمارش خام بالا ضرورتاً به این معنا نیست که کلمه مورد نظر مهم‌تر است. برای پرداختن به این مشکل، یکی از رایج‌ترین روش‌ها، نرمال‌سازی تکرار عبارت به کمک کاهش بسامد جمله، یا تی اف -آی دی اف است. علاوه بر این، برای هدف خاص طبقه‌بندی، گزینه‌های تحت نظارت ایجاد شده‌اند که برچسب کلاس یک جمله را در نظر می‌گیرند. در نهایت، مقدار باینری (حضور / عدم وجود یا ۱/۰) وزن به جای تکرار برای برخی از مسائل استفاده می‌شود.

مدل N-gram
----------

مدل بسته‌ای کلمات، تنها نمایش‌دهندهٔ تعداد کلمات مهم است. مثلاً، در مثال بالا «جان دوست دارد فیلم تماشا کند. مری هم فیلم را دوست دارد.» نمایش بسته‌ای از کلمات این واقعیت را نشان نمی‌دهد که در این متن نام فرد همیشه با فعل «دوست» دنبال می‌شود. به عنوان یک جایگزین، می‌توان از مدل gram برای ذخیره این اطلاعات مکانی درون متن استفاده کرد. با استفاده از همان مثال بالا، یک مدل bigram متن را به واحدهای زیر تجزیه خواهد کرد و بسامد واحد هر واحد را قبل از آن ذخیره خواهد کرد.

```
[
"جان دوست"
"دوست دارد",
"دارد فیلم",
"فیلم تماشا",
"تماشا کند",
"مری هم",
"هم فیلم",
"فیلم را",
"را دوست",
"دوست دارد"
]

```

از نظر مفهومی، مدل بسته‌ای به عنوان یک مورد خاص از مدل N-gram، با n = ۱ است. برای n> ۱ مدل W - shingling نامیده می‌شود. برای اطلاعات بیشتر به مدل زبانی مراجعه کنید.

ترفند درهم‌سازی
---------------

یک جایگزین متداول برای استفاده از فرهنگ لغت، ترفند درهم‌سازی است، که در آن کلمات مستقیماً به صورت شاخص‌های تابع درهم سازی نگاشته می‌شوند. با موقعیت‌یابی کلمات به کمک یک تابع درهم‌ساز، هیچ حافظه برای ذخیره کردن یک فرهنگ لغت مورد نیاز نیست. برخوردهای درهم‌ساز به‌طور معمول با استفاده از حافظه آزاد شده برای افزایش تعداد سطوح درهم‌ساز انجام می‌شود. در عمل، درهم‌سازی به‌طور قابل توجهی مدل‌های بسته‌ای کلمات را ساده کرده و مقیاس‌پذیری آنها را بهبود می‌بخشد.

استفاده از مثال: فیلترینگ اسپم بیزی
-----------------------------------

در فیلترینگ اسپم بیزی، یک پیام ایمیل به صورت یک مجموعه نامرتب از کلمات انتخاب‌شده از یکی از دو توزیع احتمال، مدلسازی می‌شود که گروه اول هرزنامه‌ها و گروه دوم نشان‌دهنده غیر هرزنامه‌ها است.

تصور کنید که دو بسته پر از کلمات وجود دارد. یک بسته پر از کلماتی است که در پیام‌های هرزنامه یافت می‌شود و بسته دیگر پر از کلماتی است که در ایمیل‌های عادی پیدا شده‌است. در حالی که هر کلمه ممکن است در هر دو بسته یافت شود.

جستارهای وابسته
---------------

منابع
-----

1. ↑  McTear et al 2016, p. 167.
2. ↑  Sivic, Josef (April 2009). "Efficient visual search of videos cast as text retrieval" (PDF). *IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 31, NO. 4*. IEEE. pp. 591–605.
3. ↑  Harris, Zellig (1954). "Distributional Structure". *Word*. **10** (2/3): 146–62. And this stock of combinations of elements becomes a factor in the way later choices are made ... for language is not merely a bag of words but a tool with particular properties which have been fashioned in the course of its use
4. ↑  Weinberger, K. Q.; Dasgupta A.; Langford J.; Smola A.; Attenberg, J. (2009). "Feature hashing for large scale multitask learning,". *Proceedings of the 26th Annual International Conference on Machine Learning*: 1113–1120. arXiv:0902.2206. Bibcode:2009arXiv0902.2206W.