एलएसए लिंक:
यहाँ पूरा एल्गोरिथ्म है। यदि आपके पास एसवीडी है, तो आप वहां से सबसे अधिक हैं। ऊपर दिए गए कागजात इसे मेरे से बेहतर समझाते हैं।
अनुमान:
- अपने SVD समारोह अवरोही क्रम में विलक्षण मूल्यों और विलक्षण वैक्टर दे देंगे। यदि नहीं, तो आपको अधिक एक्रोबेटिक्स करना होगा।
एम: कोष मैट्रिक्स, (शब्द) डब्ल्यू डी (दस्तावेज) द्वारा (डब्ल्यू पंक्तियाँ, d स्तंभ)। ये कच्चे मायने रख सकते हैं, या टीएफआईडीएफ या जो भी हो। स्टॉपवर्ड समाप्त हो सकते हैं या नहीं भी हो सकते हैं, और स्टेमिंग हो सकती है (लैंडौयर कहता है कि स्टॉपवर्ड रखें और स्टेम न करें, लेकिन हाँ tfidf को)।
U,Sigma,V = singular_value_decomposition(M)
U: w x w
Sigma: min(w,d) length vector, or w * d matrix with diagonal filled in the first min(w,d) spots with the singular values
V: d x d matrix
Thus U * Sigma * V = M
# you might have to do some transposes depending on how your SVD code
# returns U and V. verify this so that you don't go crazy :)
फिर reductionality .... वास्तविक एलएसए कागज का सुझाव आधार के लिए एक अच्छा सन्निकटन पर्याप्त वैक्टर इस तरह रखने के लिए है कि उनके विलक्षण मूल्यों विलक्षण मूल्यों के कुल का 50% से अधिक कर रहे हैं।
अधिक succintly ... (स्यूडोकोड)
Let s1 = sum(Sigma).
total = 0
for ii in range(len(Sigma)):
val = Sigma[ii]
total += val
if total > .5 * s1:
return ii
यह नया आधार है, जो मिनट था (घ, डब्ल्यू) के पद से पहले वापस आ जाएगी, और अब हम {ii} के साथ अनुमानित करेंगे।
(यहाँ, '-> प्रधानमंत्री, स्थानांतरित नहीं)
हम नए मैट्रिक्स बनाने के लिए: यू', सिग्मा ', वी', आकार चौ x ii, ii एक्स ii, और ii एक्स घ के साथ।
यह एलएसए एल्गोरिदम का सार है।
यह परिणामी मैट्रिक्स यू '* सिग्मा' * वी 'का उपयोग' बेहतर 'कोसाइन समानता खोज के लिए किया जा सकता है, या उदाहरण के लिए आप प्रत्येक दस्तावेज़ के लिए शीर्ष 3 शब्द चुन सकते हैं। चाहे यह एक साधारण टीएफ-आईडीएफ से अधिक है, यह कुछ बहस का विषय है।
मेरे लिए, एलएसए polysemy के कारण असली दुनिया डेटा सेट में खराब प्रदर्शन करता है, और डेटा कई विषयों के साथ सेट करता है। यह गणितीय/संभाव्य आधार पर अस्वस्थ है (यह सामान्य-आश (गॉसियन) वितरण मानता है, जो शब्द गणनाओं के लिए समझ में नहीं आता है)।
आपका लाभ निश्चित रूप से भिन्न होगा।
एलएसए का उपयोग कर टैगिंग (एक विधि!)
यू 'सिग्मा' वी 'SVD और कमी अनुमानी
हाथ तक का उपयोग कर dimensionally कम मैट्रिक्स का निर्माण, यू देखो 'मैट्रिक्स, और उन शब्दों के साथ आते हैं जो प्रत्येक "विषय" का वर्णन करते हैं। उदाहरण के लिए, यदि उस वेक्टर के सबसे बड़े हिस्से "ब्रोंक्स, यांकीज़, मैनहट्टन" थे, तो "न्यूयॉर्क सिटी" इसके लिए एक अच्छा शब्द हो सकता है। इन्हें एक सहयोगी सरणी, या सूची में रखें। यह कदम उचित होना चाहिए क्योंकि वैक्टरों की संख्या सीमित होगी।
मान लें कि आपके पास दस्तावेज़ के लिए शब्दों का वेक्टर (v1) है, तो v1 * t (U ') उस दस्तावेज़ के लिए सबसे मजबूत' विषय 'देगा। 3 उच्चतम का चयन करें, फिर अपने "विषय" को पिछले चरण में गणना के रूप में दें।
http://stackoverflow.com/questions/960060/singular-value-decomposition-svd-in-php – Ben
क्षमा करें, मैंने "मैं पहले से ही एकवचन मूल्य अपघटन के लिए एक कार्यान्वयन है" अब लिंक जोड़ा – caw
PHP के साथ इसका क्या संबंध है? – Novelocrat