当前位置: 首页>>代码示例>>Java>>正文


Java ExecutablePluginSupport.ExecutionControl方法代码示例

本文整理汇总了Java中org.easyrec.plugin.support.ExecutablePluginSupport.ExecutionControl方法的典型用法代码示例。如果您正苦于以下问题:Java ExecutablePluginSupport.ExecutionControl方法的具体用法?Java ExecutablePluginSupport.ExecutionControl怎么用?Java ExecutablePluginSupport.ExecutionControl使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.easyrec.plugin.support.ExecutablePluginSupport的用法示例。


在下文中一共展示了ExecutablePluginSupport.ExecutionControl方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: calculateSimilarity

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
public void calculateSimilarity(final Integer tenantId, final Integer actionTypeId, final Integer itemTypeId,
                                final Integer assocTypeId, final Integer viewTypeId, final Integer sourceTypeId,
                                final Date changeDate, final GeneratorStatistics stats,
                                final ExecutablePluginSupport.ExecutionControl control) {
    validateStrategies();

    if (logger.isInfoEnabled()) logger.info("Starting similarity computation.");

    Date start = new Date();

    int assocsCreated = similarityCalculationStrategy
            .calculateSimilarity(tenantId, actionTypeId, itemTypeId, assocTypeId, sourceTypeId, viewTypeId,
                    changeDate, control);
    stats.setNumberOfRulesCreated(assocsCreated);

    Date end = new Date();
    double time = (end.getTime() - start.getTime()) / 1000L;

    if (logger.isInfoEnabled())
        logger.info(String.format("Calculating USER-ITEM predictions for %d took %.2f seconds", tenantId, time));
}
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:22,代码来源:ItemItemServiceImpl.java

示例2: predict

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
public void predict(final Integer tenantId, final Integer actionTypeId, final Integer itemTypeId,
                    final Integer assocTypeId, final Integer viewTypeId, final Integer sourceTypeId,
                    final Date changeDate, final String sourceInfo, final Integer minRatingValue,
                    final Integer maxRatingValue, final ExecutablePluginSupport.ExecutionControl control) {
    validateStrategies();

    if (logger.isInfoEnabled()) logger.info("Starting prediction computation.");

    Date start = new Date();

    final List<Integer> users = actionDao.getUsersForTenant(tenantId);
    final List<ItemVO<Integer, Integer>> items = actionDao
            .getAvailableItemsForTenant(tenantId, itemTypeId);

    final ItemVO<Integer, Integer> itemSample = new ItemVO<Integer, Integer>(tenantId, null,
            itemTypeId);
    final UserAssoc sample = new UserAssoc(null, changeDate, itemSample, sourceTypeId, tenantId, null);

    predictionComputationStrategy
            .beginPrediction(sample, minRatingValue, maxRatingValue, configuration.isNormalizePredictions());

    final int TOTAL_STEPS = items.size();
    int currentStep = 0;

    final IAConstraintVO<Integer, Integer> constraints = new IAConstraintVO<Integer, Integer>(
            null, viewTypeId, sourceTypeId, sourceInfo, tenantId, true, null);

    for (final ItemVO<Integer, Integer> item : items) {
        if (control != null) control.updateProgress(
                String.format("Calculating predictions %d/%d - %.2f%%", currentStep, TOTAL_STEPS,
                        ((double) currentStep / (double) TOTAL_STEPS) * 100.00));

        final List<AssociatedItemVO<Integer, Integer>> itemAssocs = itemAssocService
                .getItemsFrom(itemTypeId, assocTypeId, item, constraints);

        for (final Integer user : users)
            if (!actionDao.didUserRateItem(user, item, actionTypeId))
                predictionComputationStrategy.predictForUserAndItem(user, item, itemAssocs);
    }

    predictionComputationStrategy.endPrediction();

    Date end = new Date();
    double time = (end.getTime() - start.getTime()) / 1000L;

    if (logger.isInfoEnabled())
        logger.info(String.format("Calculating similarities for %d took %.2f seconds", tenantId, time));
}
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:49,代码来源:ItemItemServiceImpl.java

示例3: calculateDeviations

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
public void calculateDeviations(SlopeOneIntegerConfiguration config, Date lastRun, SlopeOneStats stats,
                                Set<TenantItem> changedItemIds,
                                final ExecutablePluginSupport.ExecutionControl control) {
    long start = System.currentTimeMillis();

    // get only the users that did ratings since the last execution
    List<Integer> users = actionDAO.getUsers(config.getTenant(), config.getItemTypes(), lastRun);
    stats.setNoUsers(users.size());

    final int TOTAL_STEPS = users.size();
    int currentStep = 0;

    for (int userId : users) {
        if (control != null)
            control.updateProgress(String.format("Calculating deviations %d/%d", currentStep++, TOTAL_STEPS));

        // for each of these users get all his ratings
        List<RatingVO<Integer, Integer>> ratings =
                actionDAO.getRatings(config.getTenant(), config.getItemTypes(), userId);
        stats.setNumberOfActionsConsidered(stats.getNumberOfActionsConsidered() + ratings.size());

        // and use them to calculate the new deviations (old deviations, i.e. deviations that were already
        // generated in a prior run are already filtered by the strategy.)
        // moreover a proxy strategy merges the deviations with the deviations in the database (i.e. numerator
        // and denominator are already summed to the current value.)
        DeviationCalculationResult result = deviationCalculation.calculate(userId, ratings, lastRun);
        List<Deviation> deviations = result.getDeviations();
        stats.setNoCreatedDeviations(stats.getNoCreatedDeviations() + result.getCreated());
        stats.setNoModifiedDeviations(stats.getNoModifiedDeviations() + result.getModified());

        if (changedItemIds != null) {
            for (Deviation deviation : deviations) {
                changedItemIds.add(new TenantItem(deviation.getItem1Id(), deviation.getItem1TypeId()));
                changedItemIds.add(new TenantItem(deviation.getItem2Id(), deviation.getItem1TypeId()));
            }
        }

        deviationDAO.insertDeviations(deviations);
    }

    if (logger.isDebugEnabled())
        logger.debug("finishing deviations calculation");

    // endUpdate hint to DAO, so that if the DAO is cached the cache has a chance to write through to the underlying
    // store
    deviationDAO.endUpdate();

    stats.setDeviationDuration(System.currentTimeMillis() - start);
}
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:50,代码来源:SlopeOneServiceImpl.java

示例4: calculateSimilarity

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
/**
 * Calculate similarities between all items.
 *
 * @param tenantId     Tenant id.
 * @param actionTypeId Action type id.
 * @param itemTypeId   Item type id.
 * @param assocTypeId  Association type id.
 * @param sourceTypeId Source type id used for storing generated similarities.
 * @param viewTypeId   View type id used for storing generated similarities.
 * @param changeDate   Change date used for storing generated similarities.
 * @param control      Control to update progress.
 */
int calculateSimilarity(Integer tenantId, Integer actionTypeId, Integer itemTypeId, Integer assocTypeId,
                        Integer sourceTypeId, Integer viewTypeId, Date changeDate,
                        final ExecutablePluginSupport.ExecutionControl control);
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:16,代码来源:SimilarityCalculationStrategy.java

示例5: calculateSimilarity

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
/**
 * Calculate the similarity between each pair of items.
 *
 * @param tenantId     Tenant id.
 * @param actionTypeId Action type id.
 * @param itemTypeId   Item type id.
 * @param assocTypeId  Association type id.
 * @param viewTypeId   View type id.
 * @param sourceTypeId Source type id.
 * @param changeDate   Date to set for generated {@link org.easyrec.model.core.ItemAssocVO}s.
 * @param control      Control to update progress.
 */
void calculateSimilarity(Integer tenantId, Integer actionTypeId, Integer itemTypeId, Integer assocTypeId,
                         Integer viewTypeId, Integer sourceTypeId, Date changeDate, GeneratorStatistics stats,
                         final ExecutablePluginSupport.ExecutionControl control);
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:16,代码来源:ItemItemService.java

示例6: predict

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
/**
 * Calculate user to item predictions (recommendations) for each user.
 *
 * @param tenantId       Tenant id.
 * @param actionTypeId   Action type id.
 * @param itemTypeId     Item type id.
 * @param assocTypeId    Assocation type id.
 * @param viewTypeId     View type id.
 * @param sourceTypeId   Source type id.
 * @param changeDate     Date to set for generated +{@link org.easyrec.plugin.itemitem.model.UserAssoc}s.
 * @param sourceInfo     Source info to set for generated {@link org.easyrec.plugin.itemitem.model.UserAssoc}s.
 * @param minRatingValue Minimum allowed rating value (used only when {@link org.easyrec.plugin.itemitem.model.ItemItemConfiguration#isNormalizePredictions()}
 *                       is {@code true}.)
 * @param maxRatingValue Maximum allowed rating value (used only when {@link org.easyrec.plugin.itemitem.model.ItemItemConfiguration#isNormalizePredictions()}
 *                       is {@code true}.)
 * @param control        Control to update progress.
 */
void predict(Integer tenantId, Integer actionTypeId, Integer itemTypeId, Integer assocTypeId, Integer viewTypeId,
             Integer sourceTypeId, Date changeDate, String sourceInfo, Integer minRatingValue,
             Integer maxRatingValue, final ExecutablePluginSupport.ExecutionControl control);
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:21,代码来源:ItemItemService.java

示例7: calculateDeviations

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
/**
 * Calculate all new deviations since {@code lastRun}. All newly created deviation's items are optionally stored in
 * {@code changedItemIds}.
 *
 * @param tenant         Tenant to calculate deviations for.
 * @param config         Configuration used.
 * @param lastRun        Time of the last run, used to filter actions that happend before.
 * @param stats          Statistics.
 * @param changedItemIds If a non-null set is supplied all changed items will be stored in the set.
 * @param control        Control to update progress.
 */
void calculateDeviations(SlopeOneIntegerConfiguration config, Date lastRun, SlopeOneStats stats,
                         Set<TenantItem> changedItemIds, final ExecutablePluginSupport.ExecutionControl control);
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:14,代码来源:SlopeOneService.java

示例8: nonPersonalizedRecommendations

import org.easyrec.plugin.support.ExecutablePluginSupport; //导入方法依赖的package包/类
/**
 * Generate non personalized recommendations.
 * <p/>
 * Based on sorting of the deviation table to generate item->item recommendations.
 *
 * @param tenant         Tenant to calculate deviations for.
 * @param config         Configuration used.
 * @param stats          Statistics.
 * @param execution      Time to assign to newly created {@link org.easyrec.model.core.ItemAssocVO}s.
 * @param changedItemIds If a non-null set is supplied all changed items will be stored in the set.
 * @param sourceType     Source type for storing recommendations.
 * @param control        Control for updating progress.
 */
void nonPersonalizedRecommendations(SlopeOneIntegerConfiguration config, SlopeOneStats stats, Date execution,
                                    Set<TenantItem> changedItemIds,
                                    final ExecutablePluginSupport.ExecutionControl control);
 
开发者ID:major2015,项目名称:easyrec_major,代码行数:17,代码来源:SlopeOneService.java


注:本文中的org.easyrec.plugin.support.ExecutablePluginSupport.ExecutionControl方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。