<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for eric.ness.net</title>
	<atom:link href="http://eric.ness.net/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://eric.ness.net</link>
	<description>...I never learned to read.</description>
	<lastBuildDate>Thu, 18 Feb 2010 19:18:47 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Eric</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-118</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Thu, 18 Feb 2010 19:18:47 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-118</guid>
		<description>I haven&#039;t gotten in to trying to querying the end matrix yet. I was going more in the direction of wanting to cluster documents via k-means, fuzzy c. And as far as trying to figure out the similarity the only thing I have done is the Euclidean, Manhattan distance or dot product since I reduced it down.

Do you have anything I could read as I am pretty interested in what you are trying to do. I am not sure what a query matrix would look like or what it&#039;s values are.

After looking through the SmartMartLib it does have an inverse functions but I have no idea on how to access it so I quickly re-wrote it for you and seems to work on a couple of tutorials that I tested it out on. FYI the inverse of a matrix has to be a square matrix - I didn&#039;t know this but it shouldn&#039;t be a problem because Sigma is always square if I remember correctly.

&lt;code&gt;
        /// &lt;summary&gt;
        /// Inverses the matrix.
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;a&quot;&gt;A.&lt;/param&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        public Matrix InverseMatrix(Matrix a)
        {
            if (a.Rows != a.Columns)
            {
                throw new ArgumentException(&quot;The specified matrix has to be a square matrix.&quot;);
            }

            if (a == (Matrix)null)
            {
                throw new ArgumentNullException(&quot;matrix&quot;);
            }

            Matrix tempuri = Matrix.AppendIdentityMatrix(a);
            Matrix tempResult = new Matrix(tempuri.Rows, tempuri.Columns);
            Matrix resultFinal = new Matrix(a.Rows, a.Columns);

            // Set up
            for (int i = 0; i &lt; tempuri.Rows; i++)
            {
                for (int j = 0; j &lt; tempuri.Columns; j++)
                {
                    tempResult.SetValueAtPosition(new MatrixPosition(i, j),
                                            tempuri.GetValueAtPosition(new MatrixPosition(i, j)));
                }
            }

            tempuri.CreateUpperTriangularMatrix();
            tempuri.CreateDiagonalMatrix();
            tempuri.CreateIdentityMatrix();

            // Run inverse calculations
            for (int i = 0; i &lt; tempuri.Rows; i++)
            {
                for (int j = tempuri.Rows; j &lt; tempuri.Columns; j++)
                {
                    tempResult.SetValueAtPosition(new MatrixPosition(i, j - tempuri.Rows),
                                              tempuri.GetValueAtPosition(new MatrixPosition(i, j)));
                }
            }

            // Shrink down matrix
            for (int i = 0; i &lt; a.Rows; i++)
            {
                for (int j = 0; j &lt; a.Columns; j++)
                {
                    resultFinal.MatrixData[i, j] = tempResult.MatrixData[i, j];
                }
            }

            return resultFinal;
        }
&lt;/code&gt;

Hope this helps!

Eric</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t gotten in to trying to querying the end matrix yet. I was going more in the direction of wanting to cluster documents via k-means, fuzzy c. And as far as trying to figure out the similarity the only thing I have done is the Euclidean, Manhattan distance or dot product since I reduced it down.</p>
<p>Do you have anything I could read as I am pretty interested in what you are trying to do. I am not sure what a query matrix would look like or what it&#8217;s values are.</p>
<p>After looking through the SmartMartLib it does have an inverse functions but I have no idea on how to access it so I quickly re-wrote it for you and seems to work on a couple of tutorials that I tested it out on. FYI the inverse of a matrix has to be a square matrix &#8211; I didn&#8217;t know this but it shouldn&#8217;t be a problem because Sigma is always square if I remember correctly.</p>
<p><code><br />
        /// <summary><br />
        /// Inverses the matrix.<br />
        /// </summary><br />
        ///
<param name="a">A.</param>
        /// <returns></returns><br />
        public Matrix InverseMatrix(Matrix a)<br />
        {<br />
            if (a.Rows != a.Columns)<br />
            {<br />
                throw new ArgumentException("The specified matrix has to be a square matrix.");<br />
            }</p>
<p>            if (a == (Matrix)null)<br />
            {<br />
                throw new ArgumentNullException("matrix");<br />
            }</p>
<p>            Matrix tempuri = Matrix.AppendIdentityMatrix(a);<br />
            Matrix tempResult = new Matrix(tempuri.Rows, tempuri.Columns);<br />
            Matrix resultFinal = new Matrix(a.Rows, a.Columns);</p>
<p>            // Set up<br />
            for (int i = 0; i < tempuri.Rows; i++)<br />
            {<br />
                for (int j = 0; j < tempuri.Columns; j++)<br />
                {<br />
                    tempResult.SetValueAtPosition(new MatrixPosition(i, j),<br />
                                            tempuri.GetValueAtPosition(new MatrixPosition(i, j)));<br />
                }<br />
            }</p>
<p>            tempuri.CreateUpperTriangularMatrix();<br />
            tempuri.CreateDiagonalMatrix();<br />
            tempuri.CreateIdentityMatrix();</p>
<p>            // Run inverse calculations<br />
            for (int i = 0; i < tempuri.Rows; i++)<br />
            {<br />
                for (int j = tempuri.Rows; j < tempuri.Columns; j++)<br />
                {<br />
                    tempResult.SetValueAtPosition(new MatrixPosition(i, j - tempuri.Rows),<br />
                                              tempuri.GetValueAtPosition(new MatrixPosition(i, j)));<br />
                }<br />
            }</p>
<p>            // Shrink down matrix<br />
            for (int i = 0; i < a.Rows; i++)<br />
            {<br />
                for (int j = 0; j < a.Columns; j++)<br />
                {<br />
                    resultFinal.MatrixData[i, j] = tempResult.MatrixData[i, j];<br />
                }<br />
            }</p>
<p>            return resultFinal;<br />
        }<br />
</code></p>
<p>Hope this helps!</p>
<p>Eric</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Jorge Fernandes</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-117</link>
		<dc:creator>Jorge Fernandes</dc:creator>
		<pubDate>Thu, 18 Feb 2010 17:12:04 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-117</guid>
		<description>Hey,

did you by any change tried implementing a way to query the resulting end matrix?

From what i read, it should be a simple cosine similarity between the documents in the LSI matrix and the query translated into the latent semantic space, something like:

latentQuery = (reducedSigma)^-1 * reducedWordVector.Transpose() * query

or:

latentQuery = query.Transpose() * reducedWordVector * (reducedSigma)^-1


I wanted to try it out, but i couldnt find which method in SmarthMathLibrary inverts a Matrix, since in the documentation i only found one for the ComplexMatrix.

Any pointers you can give me relating this issue?

Many thanks</description>
		<content:encoded><![CDATA[<p>Hey,</p>
<p>did you by any change tried implementing a way to query the resulting end matrix?</p>
<p>From what i read, it should be a simple cosine similarity between the documents in the LSI matrix and the query translated into the latent semantic space, something like:</p>
<p>latentQuery = (reducedSigma)^-1 * reducedWordVector.Transpose() * query</p>
<p>or:</p>
<p>latentQuery = query.Transpose() * reducedWordVector * (reducedSigma)^-1</p>
<p>I wanted to try it out, but i couldnt find which method in SmarthMathLibrary inverts a Matrix, since in the documentation i only found one for the ComplexMatrix.</p>
<p>Any pointers you can give me relating this issue?</p>
<p>Many thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Eric</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-116</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Wed, 17 Feb 2010 16:46:18 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-116</guid>
		<description>Hey Jorge!

You are absolutely right! Good catch and thanks for letting me know! It is just V and not V.Transposed. For the correct walk through as far as values are concerned check out the  “Indexing by Latent Semantic Analysis” (Deerwester et al.) paper starting on page 26 for the correct values of the matrices http://lsa.colorado.edu/papers/JASIS.lsi.90.pdf 

I think in my hast - I just slapped it together because I was a bit excited that I got it to work. :-)

Eric</description>
		<content:encoded><![CDATA[<p>Hey Jorge!</p>
<p>You are absolutely right! Good catch and thanks for letting me know! It is just V and not V.Transposed. For the correct walk through as far as values are concerned check out the  “Indexing by Latent Semantic Analysis” (Deerwester et al.) paper starting on page 26 for the correct values of the matrices <a href="http://lsa.colorado.edu/papers/JASIS.lsi.90.pdf" rel="nofollow">http://lsa.colorado.edu/papers/JASIS.lsi.90.pdf</a> </p>
<p>I think in my hast &#8211; I just slapped it together because I was a bit excited that I got it to work. <img src='http://eric.ness.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Jorge Fernandes</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-115</link>
		<dc:creator>Jorge Fernandes</dc:creator>
		<pubDate>Wed, 17 Feb 2010 15:40:01 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-115</guid>
		<description>Good afternoon,

i&#039;m sorry to bother you again but i just returned from some holidays and i&#039;m back to the problem.

I am now looking at LSI, and i have a question, didn&#039;t you make a mistake in the lsi1 image? You display V&#039;s first two rows when you should display V.Transpose&#039;s.

If the idea was to actually display V, shouldn&#039;t it display the first two columns instead?

It&#039;s just a minor detail, but i tought i should let you know.</description>
		<content:encoded><![CDATA[<p>Good afternoon,</p>
<p>i&#8217;m sorry to bother you again but i just returned from some holidays and i&#8217;m back to the problem.</p>
<p>I am now looking at LSI, and i have a question, didn&#8217;t you make a mistake in the lsi1 image? You display V&#8217;s first two rows when you should display V.Transpose&#8217;s.</p>
<p>If the idea was to actually display V, shouldn&#8217;t it display the first two columns instead?</p>
<p>It&#8217;s just a minor detail, but i tought i should let you know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Eric</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-110</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Wed, 10 Feb 2010 19:52:57 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-110</guid>
		<description>Cool - glad it worked! And if you have any other questions please feel free to just post/email me a message - it&#039;s no problem. Eric</description>
		<content:encoded><![CDATA[<p>Cool &#8211; glad it worked! And if you have any other questions please feel free to just post/email me a message &#8211; it&#8217;s no problem. Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Jorge Fernandes</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-109</link>
		<dc:creator>Jorge Fernandes</dc:creator>
		<pubDate>Wed, 10 Feb 2010 19:26:36 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-109</guid>
		<description>At the moment i just wanted to test if the SVD would rebuild the original matrix by multiplying it&#039;s components after transformation, just to know if the SVD was working correctly.

That detail about the sigma matrix eluded me, since i assumed the lib would convert the general vector to the proper sized matrix. After using your CreateSigmaMatrix method with the general vector Count (instead of k) and multiplying the components according to the formula i got the original {{2,1,0,0},{4,3,0,0}} matrix.

So i&#039;ll look into LSI from here, with the rest of your explanations i hope to get working results soon, then i just need to figure out how exactly can LSI be used to categorize documents.

Thnx for everything, i hope i wont need to bother you again,

Jorge</description>
		<content:encoded><![CDATA[<p>At the moment i just wanted to test if the SVD would rebuild the original matrix by multiplying it&#8217;s components after transformation, just to know if the SVD was working correctly.</p>
<p>That detail about the sigma matrix eluded me, since i assumed the lib would convert the general vector to the proper sized matrix. After using your CreateSigmaMatrix method with the general vector Count (instead of k) and multiplying the components according to the formula i got the original {{2,1,0,0},{4,3,0,0}} matrix.</p>
<p>So i&#8217;ll look into LSI from here, with the rest of your explanations i hope to get working results soon, then i just need to figure out how exactly can LSI be used to categorize documents.</p>
<p>Thnx for everything, i hope i wont need to bother you again,</p>
<p>Jorge</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Eric</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-108</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Wed, 10 Feb 2010 17:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-108</guid>
		<description>Well there maybe two things going wrong here with the code you&#039;ve provided.

First, if you print out the matrices U, S, V you will notice something a bit odd about S or sigma - it looks like the following:

&lt;code&gt;
1
2
3
&lt;/code&gt;

instead of

&lt;code&gt;
1   0   0
0   2   0
0   0   3
&lt;/code&gt;

So when you do matrix multiplication they have to be the same dimensions as some of the matrices sigma - Sigma has the right height as V but not the same width as U. That&#039;s why I have the CreateSigmaMatrix method so it gives us the same height and width as U and V (when you pass in their height and width) - resulting in the matrix that is in the second example. In short the sigma matrix is off as correctly noted in the Wolfram link.

Second, when performing Latent Semantic Indexing you have to reduce/shrink these matrices and this can also give this error but is most often caused due to an invalid k value. 
I am not exactly sure where things go wrong but I do have a work around for you that test&#039;s out the wordVector or &#039;u&#039; matrix see the following code:

&lt;code&gt;
private int FindK(Matrix wordVector)
        {
            int k = 0;

            for (int i = 2; i &lt; 10; i++)
            {
                Matrix reducedWordVector = CopyMatrix(wordVector, wordVector.Rows, i - 1);
                if(reducedWordVector.Columns == 2) /// change this if you want a different value for k
                {
                    k = i;
                }
            }
            return k;
        }

        /// &lt;summary&gt;
        /// Gets the document word plots.
        /// &lt;/summary&gt;
        /// &lt;param name=&quot;myMatrix&quot;&gt;My matrix.&lt;/param&gt;
        private void GetDocumentWordPlots(Matrix myMatrix)
        {
            // Run single value decomposition
            var svd = new SingularValueDecomposition(myMatrix);
            svd.ExecuteDecomposition();

            // Put components into individual matrices
            Matrix wordVector = svd.U.Copy();
            Matrix sigma = svd.S.ToMatrix();
            Matrix documentVector = svd.V.Copy();

            // get value of k
            var k = (int) Math.Floor(Math.Sqrt(myMatrix.Columns));
            k = FindK(wordVector);

            // reduce the vectors
            Matrix reducedWordVector = CopyMatrix(wordVector, wordVector.Rows, k - 1);
            Matrix reducedSigma = CreateSigmaMatrix(sigma, k - 1, k - 1);
            Matrix reducedDocumentVector = CopyMatrix(documentVector, documentVector.Rows, k - 1);

            //etc.. etc...
            Matrix a = reducedWordVector*reducedSigma*reducedDocumentVector.Transpose();
        }
&lt;/code&gt;

Mainly, if you run it to this error print out your matrices and see where things have gone wrong and have some of the same dimensions as the pictures above. Hope this helps and is clear - please feel free to drop me a line if you need any other help!

Take Care,
Eric</description>
		<content:encoded><![CDATA[<p>Well there maybe two things going wrong here with the code you&#8217;ve provided.</p>
<p>First, if you print out the matrices U, S, V you will notice something a bit odd about S or sigma &#8211; it looks like the following:</p>
<p><code><br />
1<br />
2<br />
3<br />
</code></p>
<p>instead of</p>
<p><code><br />
1   0   0<br />
0   2   0<br />
0   0   3<br />
</code></p>
<p>So when you do matrix multiplication they have to be the same dimensions as some of the matrices sigma &#8211; Sigma has the right height as V but not the same width as U. That&#8217;s why I have the CreateSigmaMatrix method so it gives us the same height and width as U and V (when you pass in their height and width) &#8211; resulting in the matrix that is in the second example. In short the sigma matrix is off as correctly noted in the Wolfram link.</p>
<p>Second, when performing Latent Semantic Indexing you have to reduce/shrink these matrices and this can also give this error but is most often caused due to an invalid k value.<br />
I am not exactly sure where things go wrong but I do have a work around for you that test&#8217;s out the wordVector or &#8216;u&#8217; matrix see the following code:</p>
<p><code><br />
private int FindK(Matrix wordVector)<br />
        {<br />
            int k = 0;</p>
<p>            for (int i = 2; i < 10; i++)<br />
            {<br />
                Matrix reducedWordVector = CopyMatrix(wordVector, wordVector.Rows, i - 1);<br />
                if(reducedWordVector.Columns == 2) /// change this if you want a different value for k<br />
                {<br />
                    k = i;<br />
                }<br />
            }<br />
            return k;<br />
        }</p>
<p>        /// <summary><br />
        /// Gets the document word plots.<br />
        ///<br />
        ///
<param name="myMatrix">My matrix.</param>
        private void GetDocumentWordPlots(Matrix myMatrix)<br />
        {<br />
            // Run single value decomposition<br />
            var svd = new SingularValueDecomposition(myMatrix);<br />
            svd.ExecuteDecomposition();</p>
<p>            // Put components into individual matrices<br />
            Matrix wordVector = svd.U.Copy();<br />
            Matrix sigma = svd.S.ToMatrix();<br />
            Matrix documentVector = svd.V.Copy();</p>
<p>            // get value of k<br />
            var k = (int) Math.Floor(Math.Sqrt(myMatrix.Columns));<br />
            k = FindK(wordVector);</p>
<p>            // reduce the vectors<br />
            Matrix reducedWordVector = CopyMatrix(wordVector, wordVector.Rows, k - 1);<br />
            Matrix reducedSigma = CreateSigmaMatrix(sigma, k - 1, k - 1);<br />
            Matrix reducedDocumentVector = CopyMatrix(documentVector, documentVector.Rows, k - 1);</p>
<p>            //etc.. etc...<br />
            Matrix a = reducedWordVector*reducedSigma*reducedDocumentVector.Transpose();<br />
        }<br />
</code></p>
<p>Mainly, if you run it to this error print out your matrices and see where things have gone wrong and have some of the same dimensions as the pictures above. Hope this helps and is clear &#8211; please feel free to drop me a line if you need any other help!</p>
<p>Take Care,<br />
Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Jorge Fernandes</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-107</link>
		<dc:creator>Jorge Fernandes</dc:creator>
		<pubDate>Wed, 10 Feb 2010 15:26:58 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-107</guid>
		<description>Thnx for the tip, solved my previous problem, and this example code runs witouth a problem.

So my next step was trying to rebuild the holeDifficulty original matrix by multiplying the SVD components, so i added:

Matrix u = SVD.U.Copy();
Matrix s = SVD.S.ToMatrix();
Matrix v = SVD.V.Copy();

Matrix aux = u * s * v.Transpose();

And i get another exception:

SmartMathLibrary.IllegalArithmeticException was unhandled
  Message=&quot;The number of columns of the one side operator and the number of rows of the other side operator have to be even&quot;
  Source=&quot;SmartMathLibrary&quot;

So i compared the prints of the u,s,v with the results of doing a SVD in Wolfram Alpha (http://www.wolframalpha.com/input/?i=SVD+{{2%2C1%2C0%2C0}%2C{4%2C3%2C0%2C0}}) and indeed the matrix&#039;s have the wrong dimensions.

Is it a bug in this lib version? At least i dont see a mistake in my part, especially since it&#039;s mostly copied from your example.</description>
		<content:encoded><![CDATA[<p>Thnx for the tip, solved my previous problem, and this example code runs witouth a problem.</p>
<p>So my next step was trying to rebuild the holeDifficulty original matrix by multiplying the SVD components, so i added:</p>
<p>Matrix u = SVD.U.Copy();<br />
Matrix s = SVD.S.ToMatrix();<br />
Matrix v = SVD.V.Copy();</p>
<p>Matrix aux = u * s * v.Transpose();</p>
<p>And i get another exception:</p>
<p>SmartMathLibrary.IllegalArithmeticException was unhandled<br />
  Message=&#8221;The number of columns of the one side operator and the number of rows of the other side operator have to be even&#8221;<br />
  Source=&#8221;SmartMathLibrary&#8221;</p>
<p>So i compared the prints of the u,s,v with the results of doing a SVD in Wolfram Alpha (<a href="http://www.wolframalpha.com/input/?i=SVD+" rel="nofollow">http://www.wolframalpha.com/input/?i=SVD+</a>{{2%2C1%2C0%2C0}%2C{4%2C3%2C0%2C0}}) and indeed the matrix&#8217;s have the wrong dimensions.</p>
<p>Is it a bug in this lib version? At least i dont see a mistake in my part, especially since it&#8217;s mostly copied from your example.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Eric</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-106</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Tue, 09 Feb 2010 18:23:49 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-106</guid>
		<description>Hey Jorge,

Thanks for visiting the site! I have 1 idea why this may not be working as I ran in to something similar. First, a System.TypeLoadException is essentially a &quot;Could not load file or assembly&quot; error. When I was testing out numerous SVD libraries I ran in to the same error with LatoolNet and posted my error: http://latoolnet.codeplex.com/WorkItem/View.aspx?WorkItemId=5332 and the resulting error was at the time was due to the fact that I was on a x64 (64bit) system. So if this is the same error you can do 1 of 2 things download the full SmartMathLibrary project a recompile all .dll&#039;s and import in to your project or two maybe try LatoolNet as it is also very good (and I believe the have dll&#039;s now for both 64/32 bit systems) and the SVD implementation is very similar and would probably take you very little time to make the small adjustments.

Hope this help&#039;s please let me know how it works out or if you have any other questions.

Eric</description>
		<content:encoded><![CDATA[<p>Hey Jorge,</p>
<p>Thanks for visiting the site! I have 1 idea why this may not be working as I ran in to something similar. First, a System.TypeLoadException is essentially a &#8220;Could not load file or assembly&#8221; error. When I was testing out numerous SVD libraries I ran in to the same error with LatoolNet and posted my error: <a href="http://latoolnet.codeplex.com/WorkItem/View.aspx?WorkItemId=5332" rel="nofollow">http://latoolnet.codeplex.com/WorkItem/View.aspx?WorkItemId=5332</a> and the resulting error was at the time was due to the fact that I was on a x64 (64bit) system. So if this is the same error you can do 1 of 2 things download the full SmartMathLibrary project a recompile all .dll&#8217;s and import in to your project or two maybe try LatoolNet as it is also very good (and I believe the have dll&#8217;s now for both 64/32 bit systems) and the SVD implementation is very similar and would probably take you very little time to make the small adjustments.</p>
<p>Hope this help&#8217;s please let me know how it works out or if you have any other questions.</p>
<p>Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Empirical Methods in Natural Language Processing Course by Jorge Fernandes</title>
		<link>http://eric.ness.net/archives/empirical-methods-in-natural-language-processing-course/comment-page-1/#comment-105</link>
		<dc:creator>Jorge Fernandes</dc:creator>
		<pubDate>Tue, 09 Feb 2010 17:34:04 +0000</pubDate>
		<guid isPermaLink="false">http://eric.ness.net/?p=170#comment-105</guid>
		<description>I&#039;m currently interested in implementing a LSI, and i&#039;m in need of a SVD implementation.

Reading your post, i tried SmartMathLibrary, using your test code and the downloaded .dll.

Unfortunately i get a System.TypeLoadException related to SmartMathLibrary.AbstractMatrix (cant exactly copy the full report since it&#039;s in a foreign language).

Any ideas why?

Thnx in advance</description>
		<content:encoded><![CDATA[<p>I&#8217;m currently interested in implementing a LSI, and i&#8217;m in need of a SVD implementation.</p>
<p>Reading your post, i tried SmartMathLibrary, using your test code and the downloaded .dll.</p>
<p>Unfortunately i get a System.TypeLoadException related to SmartMathLibrary.AbstractMatrix (cant exactly copy the full report since it&#8217;s in a foreign language).</p>
<p>Any ideas why?</p>
<p>Thnx in advance</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.199 seconds -->
