# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Example for Variational Autoencoder for Collaborative Filtering, using the CiteULike dataset""" import cornac from cornac.datasets import citeulike from cornac.eval_methods import RatioSplit # Load user-item feedback data = citeulike.load_feedback() # Instantiate an evaluation method to split data into train and test sets. ratio_split = RatioSplit( data=data, test_size=0.2, exclude_unknowns=True, verbose=True, seed=123, rating_threshold=0.5, ) # Instantiate the VAECF model vaecf = cornac.models.VAECF( k=10, autoencoder_structure=[20],
# See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Example for Collaborative Deep Ranking (CDR)""" import cornac from cornac.data import Reader from cornac.datasets import citeulike from cornac.eval_methods import RatioSplit from cornac.data import TextModality from cornac.data.text import BaseTokenizer # CDR composes an autoencoder with a ranking collaborative model to represent item texts and user-item interactions # The necessary data can be loaded as follows docs, item_ids = citeulike.load_text() feedback = citeulike.load_feedback(reader=Reader(item_set=item_ids)) # Instantiate a TextModality, it makes it convenient to work with text auxiliary information # For more details, please refer to the tutorial on how to work with auxiliary data item_text_modality = TextModality( corpus=docs, ids=item_ids, tokenizer=BaseTokenizer(stop_words="english"), max_vocab=8000, max_doc_freq=0.5, ) # Define an evaluation method to split feedback into train and test sets ratio_split = RatioSplit( data=feedback, test_size=0.2,