コード例 #1
0
ファイル: Commands.java プロジェクト: EMEGroup/Scoach
  public void recommendations(Map<String, List<String>> requestProperties) {
    Recommendations _recommendations = new Recommendations();
    UnitofInteraction talking = new UnitofInteraction(requestProperties);
    talking.startThread();

    // Add the "--groupname" preffix to the given command text so the
    // _getArguments method puts the groupname under the "--groupname" key.

    if (requestProperties.get("text") != null) {
      if (requestProperties.get("text").get(0) != null) {

        requestProperties.get("text").set(0, "--groupname " + requestProperties.get("text").get(0));
      }
    }

    Map<String, String> result = null;

    try {
      result = _recommendations.Run(GeneralStuff._getArguments(requestProperties));
    } catch (MessagingException ex) {
      result.put("text", result.get("text") + "`" + ex.getMessage() + "`");
      talking.notifyError();
    } catch (IOException ex) {
      Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex);
      talking.notifyError();
    } catch (SQLException ex) {
      Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex);
      talking.notifyError();
    } catch (ClassNotFoundException ex) {
      Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex);
      talking.notifyError();
    } finally {
      talking.stopThread();
    }

    String text = result.get("text");
    requestProperties.put("text", Arrays.asList(new String[] {text}));
    System.out.println(text);
    try {
      GeneralStuff._sendMessage(GeneralStuff._forgeMessage(requestProperties));
    } catch (IOException ex) {
      Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
コード例 #2
0
ファイル: CachingRecommender.java プロジェクト: hmcl/mahout
  @Override
  public List<RecommendedItem> recommend(
      long userID, int howMany, IDRescorer rescorer, boolean includeKnownItems)
      throws TasteException {
    Preconditions.checkArgument(howMany >= 1, "howMany must be at least 1");
    synchronized (maxHowMany) {
      if (howMany > maxHowMany[0]) {
        maxHowMany[0] = howMany;
      }
    }

    // Special case, avoid caching an anonymous user
    if (userID == PlusAnonymousUserDataModel.TEMP_USER_ID) {
      return recommendationsRetriever.get(PlusAnonymousUserDataModel.TEMP_USER_ID).getItems();
    }

    setCurrentRescorer(rescorer);
    setCurrentlyIncludeKnownItems(includeKnownItems);

    Recommendations recommendations = recommendationCache.get(userID);
    if (recommendations.getItems().size() < howMany
        && !recommendations.isNoMoreRecommendableItems()) {
      clear(userID);
      recommendations = recommendationCache.get(userID);
      if (recommendations.getItems().size() < howMany) {
        recommendations.setNoMoreRecommendableItems(true);
      }
    }

    List<RecommendedItem> recommendedItems = recommendations.getItems();
    return recommendedItems.size() > howMany
        ? recommendedItems.subList(0, howMany)
        : recommendedItems;
  }