-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Creating unified base class for all topic models, #938 #946
Changes from 9 commits
05edaf2
48396c1
e673305
de80720
272d7fc
f4f92d3
f9d28a0
0b47408
ac4e93b
098be5f
a215aed
6de2121
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
class BaseTopicModel(): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All Python classes must inherit from object (new-style classes). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done. |
||
def print_topic(self, topicno, topn=10): | ||
""" | ||
Return a single topic as a formatted string. See `show_topic()` for parameters. | ||
|
||
>>> lsimodel.print_topic(10, topn=5) | ||
'-0.340 * "category" + 0.298 * "$M$" + 0.183 * "algebra" + -0.174 * "functor" + -0.168 * "operator"' | ||
|
||
""" | ||
return ' + '.join(['%.3f*"%s"' % (v, k) for k, v in self.show_topic(topicno, topn)]) | ||
|
||
def print_topics(self, num_topics=20, num_words=10): | ||
"""Alias for `show_topics()` that prints the `num_words` most | ||
probable words for `topics` number of topics to log. | ||
Set `topics=-1` to print all topics.""" | ||
return self.show_topics(num_topics=num_topics, num_words=num_words, log=True) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#!/usr/bin/env python | ||
# -*- coding: utf-8 -*- | ||
# | ||
# Copyright (C) 2010 Radim Rehurek <[email protected]> | ||
# Licensed under the GNU LGPL v2.1 - http://www.gnu.org/licenses/lgpl.html | ||
|
||
""" | ||
Automated tests for checking transformation algorithms (the models package). | ||
""" | ||
|
||
import six | ||
|
||
|
||
class TestBaseTopicModel(): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All tests should inherit from There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't want it to be a real test so adding |
||
def testPrintTopic(self): | ||
topics = self.model.show_topics(formatted=True) | ||
for topic_no, topic in topics: | ||
self.assertTrue(isinstance(topic_no, int)) | ||
self.assertTrue(isinstance(topic, str) or isinstance(topic, unicode)) | ||
|
||
def testPrintTopics(self): | ||
topics = self.model.print_topics() | ||
|
||
for topic_no, topic in topics: | ||
self.assertTrue(isinstance(topic_no, int)) | ||
self.assertTrue(isinstance(topic, str) or isinstance(topic, unicode)) | ||
|
||
def testShowTopic(self): | ||
topic = self.model.show_topic(1) | ||
|
||
for k, v in topic: | ||
self.assertTrue(isinstance(k, six.string_types)) | ||
self.assertTrue(isinstance(v, float)) | ||
|
||
def testShowTopics(self): | ||
topics = self.model.show_topics(formatted=False) | ||
|
||
for topic_no, topic in topics: | ||
self.assertTrue(isinstance(topic_no, int)) | ||
self.assertTrue(isinstance(topic, list)) | ||
for k, v in topic: | ||
self.assertTrue(isinstance(k, six.string_types)) | ||
self.assertTrue(isinstance(v, float)) |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -47,7 +47,6 @@ def testfile(): | |
return os.path.join(tempfile.gettempdir(), 'gensim_models.tst') | ||
|
||
|
||
|
||
class TestHdpModel(unittest.TestCase): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. should it inherit from TestBaseTopicModel too? Feel free to add the missing methods |
||
def setUp(self): | ||
self.corpus = mmcorpus.MmCorpus(datapath('testcorpus.mm')) | ||
|
@@ -65,7 +64,6 @@ def testShowTopics(self): | |
self.assertTrue(isinstance(v, float)) | ||
|
||
|
||
|
||
if __name__ == '__main__': | ||
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.DEBUG) | ||
unittest.main() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why these changes?
Expect to see just 1 line added about the new fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was fixing my previous hyperlinks, but alright. I'll add just one line no issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes to your prev links are ok. You can leave them in.