Jacqueline Bourdeau

43 papers A* 1A 4B 8C 2Journal 7Unranked 13
YearRankTypeTitle / Venue / Authors
2020 J jnl
Comput. Educ.
Isabelle Savard, Jacqueline Bourdeau, Gilbert Paquette
2019 B conf
ITS
Valéry Psyché, Ben Daniel, Jacqueline Bourdeau
2019 conf
ACII Workshops
Mélanie Piot, Thybault Alabarbe, Jordan Gonzalez, Chloé Le Bail, Lionel Prevost, Jacqueline Bourdeau, François-Xavier Bernard, Michael J. Baker, Françoise Détienne
2018 conf
ITS Workshops
Valéry Psyché, Claire Anjou, Wafa Fenani, Jacqueline Bourdeau, Thomas Forissier, Roger Nkambou
2018 conf
ITS Workshops
Valéry Psyché, Isabelle Savard, Riichiro Mizoguchi, Jacqueline Bourdeau
2017 conf
CONTEXT
Claire Anjou, Thomas Forissier, Jacqueline Bourdeau, Yves Mazabraud, Roger Nkambou, Frédéric Fournier
2017 conf
CONTEXT
Jacqueline Bourdeau
2016 A* ed.
WWW
Jacqueline Bourdeau, Jim Hendler, Roger Nkambou, Ian Horrocks, Ben Y. Zhao
2016 ed.
WWW (Companion Volume)
Jacqueline Bourdeau, Jim Hendler, Roger Nkambou, Ian Horrocks, Ben Y. Zhao
2016 B conf
EC-TEL
Alexandra Luccioni, Jacqueline Bourdeau, Jean Massardi, Roger Nkambou
2016 conf
WWW (Companion Volume)
Alexandra Luccioni, Roger Nkambou, Jean Massardi, Jacqueline Bourdeau, Claude Coulombe
2016 J jnl
Int. J. Artif. Intell. Educ.
Riichiro Mizoguchi, Jacqueline Bourdeau
2015 conf
WWW (Companion Volume)
Jacqueline Bourdeau, Thomas Forissier, Yves Mazabraud, Roger Nkambou
2014 ch.
Context in Computing
Thomas Forissier, Jacqueline Bourdeau, Yves Mazabraud, Roger Nkambou
2014 B conf
Intelligent Tutoring Systems
Valéry Psyché, Jacqueline Bourdeau, Jules Mozes, Alexandre Kalemjian, Pierre Poirier, Roger Nkambou, Alexie Miquelon, Céline Maurice
2013 conf
AIED Workshops
Zhao Xin Wu, Roger Nkambou, Jacqueline Bourdeau
2013 conf
CONTEXT
Thomas Forissier, Jacqueline Bourdeau, Yves Mazabraud, Roger Nkambou
2011 A conf
AIED
Yusuke Hayashi, Seiji Isotani, Jacqueline Bourdeau, Riichiro Mizoguchi
2011 conf
CRIWG
Yusuke Hayashi, Seiji Isotani, Jacqueline Bourdeau, Riichiro Mizoguchi
2011 J jnl
IEEE Trans. Learn. Technol.
Seiji Isotani, Jacqueline Bourdeau, Riichiro Mizoguchi, Weiqin Chen, Barbara Wasson, Jelena Jovanovic
2010 book
Roger Nkambou, Jacqueline Bourdeau, Riichiro Mizoguchi
2010 ch.
Advances in Intelligent Tutoring Systems
Roger Nkambou, Jacqueline Bourdeau, Valéry Psyché
2010 ch.
Advances in Intelligent Tutoring Systems
Roger Nkambou, Jacqueline Bourdeau, Riichiro Mizoguchi
2010 ch.
Advances in Intelligent Tutoring Systems
Jacqueline Bourdeau, Monique Grandbastien
2010 ch.
Advances in Intelligent Tutoring Systems
Riichiro Mizoguchi, Yusuke Hayashi, Jacqueline Bourdeau
2010 J jnl
Int. J. Knowl. Web Intell.
Yusuke Hayashi, Jacqueline Bourdeau, Riichiro Mizoguchi
2009 ch.
Semantic Web Technologies for e-Learning
Riichiro Mizoguchi, Yusuke Hayashi, Jacqueline Bourdeau
2009 conf
CSCL (2)
Jacqueline Bourdeau, Riichiro Mizoguchi, Seiji Isotani, Barbara Wasson, Weiqin Chen, Jelena Jovanovic
2009 A conf
AIED
Yusuke Hayashi, Jacqueline Bourdeau, Riichiro Mizoguchi
2009 conf
WCCE
Yusuke Hayashi, Seiji Isotani, Jacqueline Bourdeau, Riichiro Mizoguchi
2009 J jnl
Int. J. Artif. Intell. Educ.
Yusuke Hayashi, Jacqueline Bourdeau, Riichiro Mizoguchi
2008 B conf
Intelligent Tutoring Systems
Yusuke Hayashi, Jacqueline Bourdeau, Riichiro Mizoguchi
2007 J jnl
Int. J. Artif. Intell. Educ.
Joséphine M. P. Tchétagni, Roger Nkambou, Jacqueline Bourdeau
2007 A conf
AIED
Yusuke Hayashi, Jacqueline Bourdeau, Riichiro Mizoguchi
2006 J jnl
AI Soc.
F. Henri, P. Gagné, M. Maina, Y. Gargouri, Jacqueline Bourdeau, Gilbert Paquette
2006 C conf
ICCE
Yusuke Hayashi, Jacqueline Bourdeau, Riichiro Mizoguchi
2006 B conf
EC-TEL
Yusuke Hayashi, Jacqueline Bourdeau, Riichiro Mizoguchi
2005 A conf
AIED
Valéry Psyché, Jacqueline Bourdeau, Roger Nkambou, Riichiro Mizoguchi
2004 B conf
Intelligent Tutoring Systems
Jacqueline Bourdeau, Riichiro Mizoguchi, Valéry Psyché, Roger Nkambou
2002 B conf
Intelligent Tutoring Systems
Jacqueline Bourdeau, Riichiro Mizoguchi
2002 C conf
ICCE
Riichiro Mizoguchi, Jacqueline Bourdeau
1993 conf
Teleteaching
Gilbert Paquette, Gilles Bergeron, Jacqueline Bourdeau
1992 B conf
Intelligent Tutoring Systems
Claude Lamontagne, Jacqueline Bourdeau
redb/extractors/decompiler/bninja/similarity/minhashcustom.py
← Index redb/extractors/decompiler/bninja/similarity/minhashcustom.py python
import numpy as np
import mmh3

class MinHashCustom:
    """
    DTO for an actual MinHash
    <minhash>: a binary sequence of packed int8/32 values
    <minhash_int>: the equivalent representation of <minhash> but as list of int8/32
    """

    _HASH_MAX = 0xFFFFFFFF
    _MINHASH_BITS = 32

    def getSignatureEntrySize(self):
        return 1 if self.MINHASH_BITS <= 8 else 4

    def __init__(self, function_addr=None, minhash_bytes=None, minhash_signature=None, minhash_bits=32):
        self.minhash = b""
        self.minhash_int = []
        if minhash_bits:
            self._MINHASH_BITS = minhash_bits
        if minhash_bytes and minhash_signature:
            raise ValueError("Can use only one keyword argument")
        if minhash_bytes:
            if self._MINHASH_BITS <= 8:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint8)
            else:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint32)
            self.setMinHash(minhash_signature)
        elif minhash_signature:
            self.setMinHash(minhash_signature)

        self.shingler_composition = {}
        self.function_addr = function_addr

    def hasMinHash(self):
        return len(self.minhash) > 0

    def getMinHash(self):
        return self.minhash

    def getMinHashInt(self):
        return self.minhash_int

    def setMinHash(self, minhash_signature):
        self.minhash_int = [i % 2 ** self._MINHASH_BITS for i in minhash_signature]
        if self._MINHASH_BITS <= 8:
            self.minhash = np.array(self.minhash_int, dtype=np.uint8).tobytes()
        else:
            self.minhash = np.array(self.minhash_int, dtype=np.uint32).tobytes()

    def getComposition(self):
        return self.shingler_composition

    def scoreAgainst(self, other):
        return self.calculateMinHashScore(self.minhash, other.minhash, minhash_bits=self._MINHASH_BITS)

    @staticmethod
    def getHashMax():
        return MinHashCustom._HASH_MAX

    @staticmethod
    def hashData(data, seed) -> int:
        if isinstance(data, (str, bytes, bytearray)):
            return mmh3.hash(data, seed) & MinHashCustom._HASH_MAX
        elif isinstance(data, (list, tuple)):
            to_hash = "|".join(str(elem) for elem in data)
            return mmh3.hash(to_hash, seed) & MinHashCustom._HASH_MAX
        else:
            raise NotImplementedError(
                f"Type not supported for hashData: {type(data).__name__}"
            )

    @staticmethod
    def calculateMinHashScore(first, second, minhash_bits=32):
        if minhash_bits <= 8:
            first_np = np.frombuffer(first, dtype=np.uint8)
            second_np = np.frombuffer(second, dtype=np.uint8)
        else:
            first_np = np.frombuffer(first, dtype=np.uint32)
            second_np = np.frombuffer(second, dtype=np.uint32)
        return 100.0 * sum(first_np == second_np) / len(first_np)

    @staticmethod
    def calculateMinHashIntScore(first, second):
        score = 0
        num_hashes = len(first)
        if num_hashes:
            for index, part in enumerate(first):
                score += 1 if part == second[index] else 0
            return 100.0 * score / num_hashes
        return 0.0

    @property
    def MINHASH_BITS(self):
        return self._MINHASH_BITS