當前位置: 首頁>>代碼示例>>Python>>正文


Python metrics.distance方法代碼示例

本文整理匯總了Python中nltk.metrics.distance方法的典型用法代碼示例。如果您正苦於以下問題:Python metrics.distance方法的具體用法?Python metrics.distance怎麽用?Python metrics.distance使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在nltk.metrics的用法示例。


在下文中一共展示了metrics.distance方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: agr

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def agr(self, cA, cB, i, data=None):
        """Agreement between two coders on a given item

        """
        data = data or self.data
        # cfedermann: we don't know what combination of coder/item will come
        # first in x; to avoid StopIteration problems due to assuming an order
        # cA,cB, we allow either for k1 and then look up the missing as k2.
        k1 = next((x for x in data if x['coder'] in (cA,cB) and x['item']==i))
        if k1['coder'] == cA:
            k2 = next((x for x in data if x['coder']==cB and x['item']==i))
        else:
            k2 = next((x for x in data if x['coder']==cA and x['item']==i))

        ret = 1.0 - float(self.distance(k1['labels'], k2['labels']))
        log.debug("Observed agreement between %s and %s on %s: %f",
                      cA, cB, i, ret)
        log.debug("Distance between \"%r\" and \"%r\": %f",
                      k1['labels'], k2['labels'], 1.0 - ret)
        return ret 
開發者ID:Thejas-1,項目名稱:Price-Comparator,代碼行數:22,代碼來源:agreement.py

示例2: Do_alpha

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def Do_alpha(self):
        """The observed disagreement for the alpha coefficient.

        The alpha coefficient, unlike the other metrics, uses this rather than
        observed agreement.
        """
        total = 0.0
        for i, itemdata in self._grouped_data('item'):
            label_freqs = FreqDist(x['labels'] for x in itemdata)

            for j, nj in iteritems(label_freqs):
                for l, nl in iteritems(label_freqs):
                    total += float(nj * nl) * self.distance(l, j)
        ret = (1.0 / (len(self.I) * len(self.C) * (len(self.C) - 1))) * total
        log.debug("Observed disagreement: %f", ret)
        return ret 
開發者ID:Thejas-1,項目名稱:Price-Comparator,代碼行數:18,代碼來源:agreement.py

示例3: Do_alpha

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def Do_alpha(self):
        """The observed disagreement for the alpha coefficient.

        The alpha coefficient, unlike the other metrics, uses this rather than
        observed agreement.
        """
        total = 0.0
        for i, itemdata in self._grouped_data('item'):
            label_freqs = FreqDist(x['labels'] for x in itemdata)

            for j, nj in iteritems(label_freqs):
                for l, nl in iteritems(label_freqs):
                    total += float(nj * nl) * self.distance(l, j)
        ret = (1.0 / float((len(self.I) * len(self.C) * (len(self.C) - 1)))) * total
        log.debug("Observed disagreement: %f", ret)
        return ret 
開發者ID:jarrellmark,項目名稱:neighborhood_mood_aws,代碼行數:18,代碼來源:agreement.py

示例4: __init__

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def __init__(self, data=None, distance=binary_distance):
        """Initialize an annotation task.
        
        The data argument can be None (to create an empty annotation task) or a sequence of 3-tuples, 
        each representing a coder's labeling of an item:
            (coder,item,label)
            
        The distance argument is a function taking two arguments (labels) and producing a numerical distance.
        The distance from a label to itself should be zero:
            distance(l,l) = 0
        """
        self.distance = distance
        self.I = set()
        self.K = set()
        self.C = set()
        self.data = []
        if data is not None:
            self.load_array(data) 
開發者ID:sdoran35,項目名稱:hate-to-hugs,代碼行數:20,代碼來源:agreement.py

示例5: __init__

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def __init__(self, data=None, distance=binary_distance):
        """Initialize an empty annotation task.

        """
        self.distance = distance
        self.I = set()
        self.K = set()
        self.C = set()
        self.data = []
        if data is not None:
            self.load_array(data) 
開發者ID:Thejas-1,項目名稱:Price-Comparator,代碼行數:13,代碼來源:agreement.py

示例6: Do_Kw_pairwise

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def Do_Kw_pairwise(self,cA,cB,max_distance=1.0):
        """The observed disagreement for the weighted kappa coefficient.

        """
        total = 0.0
        data = (x for x in self.data if x['coder'] in (cA, cB))
        for i, itemdata in self._grouped_data('item', data):
            # we should have two items; distance doesn't care which comes first
            total += self.distance(next(itemdata)['labels'],
                                   next(itemdata)['labels'])

        ret = total / (len(self.I) * max_distance)
        log.debug("Observed disagreement between %s and %s: %f", cA, cB, ret)
        return ret 
開發者ID:Thejas-1,項目名稱:Price-Comparator,代碼行數:16,代碼來源:agreement.py

示例7: alpha

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def alpha(self):
        """Krippendorff 1980

        """
        De = 0.0

        label_freqs = FreqDist(x['labels'] for x in self.data)
        for j in self.K:
            nj = label_freqs[j]
            for l in self.K:
                De += float(nj * label_freqs[l]) * self.distance(j, l)
        De = (1.0 / (len(self.I) * len(self.C) * (len(self.I) * len(self.C) - 1))) * De
        log.debug("Expected disagreement: %f", De)
        ret = 1.0 - (self.Do_alpha() / De)
        return ret 
開發者ID:Thejas-1,項目名稱:Price-Comparator,代碼行數:17,代碼來源:agreement.py

示例8: alpha

# 需要導入模塊: from nltk import metrics [as 別名]
# 或者: from nltk.metrics import distance [as 別名]
def alpha(self):
        """Krippendorff 1980

        """
        # check for degenerate cases
        if len(self.K)==0:
            raise ValueError("Cannot calculate alpha, no data present!")
        if len(self.K) == 1:
            log.debug("Only one annotation value, allpha returning 1.")
            return 1
        if len(self.C)==1 and len(self.I) == 1:
            raise ValueError("Cannot calculate alpha, only one coder and item present!")
        
        De = 0.0

        label_freqs = FreqDist(x['labels'] for x in self.data)
        for j in self.K:
            nj = label_freqs[j]
            for l in self.K:
                De += float(nj * label_freqs[l]) * self.distance(j, l)
        try:
            De = (1.0 / (len(self.I) * len(self.C) * (len(self.I) * len(self.C) - 1))) * De
            log.debug("Expected disagreement: %f", De)
            ret = 1.0 - (self.Do_alpha() / De)
        except ZeroDivisionError:
            raise ValueError("Cannot calculate alpha, expected disagreement zero, check the distance function!")
        return ret 
開發者ID:sdoran35,項目名稱:hate-to-hugs,代碼行數:29,代碼來源:agreement.py


注:本文中的nltk.metrics.distance方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。