Consecuencias imprevistas
"El sistema de karma Habr y su impacto en los usuarios" es un tema para un curso al menosTema sobre el karma en "Picaba"Podría comenzar este artículo con el hecho de que he estado leyendo a Habr durante mucho tiempo, pero esta no será una declaración completamente precisa. La tesis correcta sería: "He estado leyendo artículos de Habr durante mucho tiempo", pero no estaba interesado en lo que estaba sucediendo dentro de la comunidad cuando decidí registrarme finalmente esta primavera. Este es un error típico de una persona que llega a Habr desde un motor de búsqueda para leer artículos útiles sobre las complejidades de la programación o noticias interesantes del mundo de la tecnología. Mientras vea el portal solo desde este lado positivo, no haga preguntas sobre lo que está sucediendo bajo el capó. Por supuesto, en los comentarios o artículos, las menciones de karma se deslizan de vez en cuando, pero después de todo, el karma se encuentra en casi todos los portales principales (pensé ingenuamente), esto es normal para las comunidades en línea autorreguladas.
Tuve que pensarlo seriamente después de que repentinamente perdí la capacidad de escribir más de un comentario en cinco minutos.
Al mismo tiempo, todo parecía ir bien: mis comentarios siempre eran contundentes, mi calificación estaba creciendo, y de repente resultó que tenía karma negativo. Toda mi larga experiencia en comunicación por Internet, todos los hábitos de los usuarios y el sentido común común me gritaron que se trataba de algún tipo de error: ¡el indicador de aprobación de un usuario del sitio por parte de otros usuarios del sitio no puede aumentar y disminuir simultáneamente! Pero decidí no cortarme el hombro, sino realizar una pequeña investigación, tanto analítica (en forma de estudiar las opiniones de los usuarios sobre el karma) como estadística (en forma de análisis de indicadores de cuenta).
La historia de la guerra de los usuarios con el karma resultó ser muy rica. Con diversos éxitos, ha estado sucediendo durante más de una docena de años, en su cuenta decenas de víctimas bloqueadas y varios artículos eliminados. Y, curiosamente, mi problema (discrepancia entre calificaciones y karma) prácticamente no se usa en la argumentación; incluso durante la API abierta, estos cálculos no se usaron. Más cerca de todo, solo se seleccionó un comentarista en una entrada relativamente reciente:
"En realidad, lo que es interesante encontrar: ¿hay personas de mente kármica con grandes ventajas por sus comentarios?"
https://habr.com/en/company/habr/blog/437072/#comment_19650144
En la parte estadística puedes ver que sí, hay personas así. Pero incluso sin estadísticas, los usuarios básicamente entendieron todo sobre el karma durante mucho tiempo.
Aquí hay un registro de hace una década:
El gran problema en el centro es que hay muchos usuarios que ponen un menos en el karma según el principio: "Ah, tienes una opinión que es diferente a la mía, aquí hay un menos en el karma". Aunque, para mí, un comentario bien razonado con argumentos en contra y una posición opuesta bien establecida no merece ni siquiera un punto negativo para el comentario en sí, no para el karma del autor. Desafortunadamente, en Habré prácticamente no existe una cultura de disputas razonadas y respeto por un oponente fuerte, muchos tienden a lanzar sus sombreros.
En general, tengo la opinión de que dividir las calificaciones en dos contadores "calificación" y "karma" no es intuitivo y, por lo tanto, es incorrecto e ineficiente.
https://habr.com/en/post/92426/#comment_2800908
Aquí hay un registro hace cinco años:
Solo se analizaron los casos en que el karma cambió en al menos 15 unidades, pero esto no cambia la imagen en su conjunto, porque y en este caso, la proporción del 30% al 70%. Aparentemente, el karma se fusionó en su mayor parte debido a los comentarios, pero se planteó para artículos escritos.
https://habr.com/en/post/192376/
Aquí hay una sugerencia para mejorar hace tres años:
Sugerencia:
Permita que los autores de los artículos voten por el karma solo en un período determinado (por ejemplo, una semana) después de publicar el artículo. Si una persona no ha publicado nada en la última semana, no se puede filtrar el karma para hacer comentarios. La regla no puede extenderse a cuentas de solo caña: ganan karma con comentarios útiles.
Comentario:
Con demasiada frecuencia, los usuarios de Habr se quejan del drenaje de karma por comentarios objetables en las publicaciones de otras personas. Por ejemplo, en esta publicación, el problema se describió en 2012. Woz y ahora allí.
https://github.com/limonte/dear-habr/issues/49
Aquí hay otro diálogo hace tres años sobre el mismo tema:
Drmetallius
Puedo decir por qué dejé de escribir comentarios (haré de esto una excepción): porque es difícil ganar karma, porque para ello necesitas generar constantemente algunos artículos, pero perderlo es muy fácil. No es cierto que si escribe correctamente, no se desperdicia. Se puede reducir por muchas razones: no estuve de acuerdo con usted en la disputa, consideré que algún hecho era incorrecto en el comentario, o simplemente que estaba de mal humor.
maxshopen
Sí, esta es una enfermedad antigua del sistema habras. Se asumió que aquellos que tienen karma positivo son adecuados y simplemente no menospreciarán a nadie. Cuando todo era aún peor: cuanto más karma, mayor menos el usuario puede apostar a que terminó con un par de habrausers "destacados" repartidos a la izquierda y a la derecha que obtuvieron -6, -8, después de lo cual las posibilidades se redujeron a uno. Los creadores de la economía kármica inicialmente aparentemente no tomaron en cuenta la perversidad del anonimato.
Me parece que durante mucho tiempo este sistema tuvo que equilibrarse un poco más por el hecho de que al votar a alguien, una cierta cantidad se debita del karma del usuario. No es necesario mucho: 0.2-0.5 es suficiente. Esto aumentaría en gran medida la responsabilidad de los votantes al elegir votar por alguien o no.
https://habr.com/en/post/276383/#comment_8761911
Y finalmente, comentarios sobre la publicación de principios de este año:
El karma no es una muy buena herramienta para la autorregulación del sistema. Aquellos que no están satisfechos con una persona (o incluso su posición) a menudo ponen evaluaciones en el karma. El resultado es que ganar karma es muy difícil y fusionarlo es muy fácil. Esto hace que la gente piense de nuevo: ¿vale la pena expresar su opinión si no es muy popular? Después de todo, si lo expreso una vez, se doblarán y fusionarán karma, y ya no será posible expresar más. Esto lleva al hecho de que solo queda una opinión sobre el recurso, y todas las demás están desplazadas.
https://habr.com/en/company/habr/blog/437072/#comment_19647340
Y aquí hay un comentario que explica por qué "escribir artículos" realmente no salva el sistema de karma:
El artículo no aporta casi nada en términos de karma, y para un comentario infructuoso, una persona puede fusionarse por completo.
Aquí el problema es la separación de calificación y karma. En la cabeza, la gente trabaja así:
1. La calificación del contenido es mi actitud hacia el artículo o comentario.
2. La evaluación del karma es mi actitud hacia una persona personalmente.
Al final
1. Si escribió el mejor artículo del mundo, le darán muchas ventajas al artículo (en la calificación) y considerarán su misión cumplida.
2. Si escribió un comentario que "no entra en la corriente", entonces tendrá un comentario negativo, e incluso una persona que probablemente piense así, por eso usted y el karma.
https://habr.com/en/company/habr/blog/437072/#comment_19649262
Muchos insatisfechos con el sistema de karma se expresan en el sentido de que esta es una política deliberada de la administración,
por ejemplo, en este comentario o en
este . Hay, por supuesto, mucha evidencia indirecta:
- Se eliminó la API para que no fuera posible monitorear la dinámica;
- Hicimos una calificación dinámica para que fuera imposible ver las calificaciones totales directamente en el perfil;
- Se refieren constantemente al "karmograma", según el cual hay más ventajas que desventajas (ni siquiera se menciona la proporción de karma y calificaciones);
- Mucho, pero sin razón, dicen que el karma refleja la calidad de las publicaciones y los comentarios (lo que contradice las estadísticas, como podemos ver en los indicadores de evaluación).
También les recuerdo que en
ninguna parte y nunca se ha dado la justificación de la existencia del karma en la forma en que existe.
No podemos probar estas teorías de conspiración de ninguna manera. Pero me parece que el problema no está en ellos: existe el mismo problema que con las personas que son negativas para el karma: una creencia impenetrable en su justicia, hasta el punto de que aquellos que no están de acuerdo con usted son percibidos como una "mala persona". Aquí los líderes de Habr de la misma manera decidieron: evaluaremos a los usuarios por separado de sus mensajes. Y no se les puede explicar durante más de diez años que este es un enfoque incorrecto para clasificar a los usuarios. Son inteligentes, han creado un portal completo. Entonces creas tu Habr, y luego hablamos (por cierto, es curioso que,
literalmente, en tales términos, el defensor del karma me reclama y responde : "Primero entiéndelo")
Personalmente, supongo que el esquema de karma nos llegó de
Lepra , donde la mayoría de los propietarios actuales de grandes portales de Internet estaban
pasando el tiempo. Habr comenzó cuando el mismo Lepre, un club cerrado con invitaciones y calificaciones mutuas, insatisfecho, se fue del club. Esos días han pasado hace mucho tiempo, el club no ha estado cerrado por mucho tiempo, las calificaciones se han otorgado desde hace mucho tiempo no a "otro miembro del club", sino a un usuario común para comentarios y artículos comunes. Pero el elitismo interno no deja ir a la administración. Todos piensan, de hecho, los muchachos han creado un gran portal rentable, han estado escribiendo artículos sobre temas técnicos durante muchos años, ¿cómo pueden no saber algo? Entonces, si todo está mal, entonces ellos, los villanos, están concebidos. Pero, de hecho, los administradores simplemente están atrapados en la infancia. Y cuanto más grande y rentable es el portal, más difícil es admitir muchos años de errores del orgullo falsamente entendido.
Confusión
Estas son aguas profundas, Watson, aguas profundas. Acabo de empezar a bucear.Número especial de Sherlock HolmesA continuación utilizaré el término "Karma" para karma, y el término "Evaluación" o "Evaluación total" - para la cantidad total de todos los pros y contras que ha recibido el usuario, tanto para artículos como para comentarios.
Habiendo descubierto la historia, trataremos de ver los números. Recientemente hubo un ciclo completo de análisis de estadísticas, pero solo se refería al año en curso: necesitaba comprender la calificación total del usuario. Dado que no tenemos una API, y en lugar de calificaciones reales en el perfil, muestran una calificación dudosa, solo pude estudiar cada comentario y recopilar datos sobre el autor y la calificación de él. Eso es lo que hice.
Abrí todas las publicaciones desde el principio de los tiempos, saqué el apodo del autor de la publicación y la calificación del artículo, y luego los apodos de los comentaristas y las calificaciones de sus comentarios.
Aquí está el código para el analizador principal.import requests
from bs4 import BeautifulSoup
import csv
def get_doc_by_id(pid):
fname = r'files/' + 'habrbase' + '.csv'
with open(fname, "a", newline="") as file:
try:
writer = csv.writer(file)
r = requests.head('https://habr.com/ru/post/' +str(pid) + '/')
if r.status_code == 404: #
pass
else:
r = requests.get('https://habr.com/ru/post/' +str(pid) + '/')
soup = BeautifulSoup(r.text, 'html5lib')
if not soup.find("span", {"class": "post__title-text"}):
pass
else:
doc = []
cmt = []
doc.append(pid) #
doc.append(soup.find("span", {"class": "user-info__nickname"}).text) #
doc.append(soup.find("span", {"class": "voting-wjt__counter"}).text) #
writer.writerow(doc)
comments = soup.find_all("div", {"class": "comment"})
for x in comments:
if not x.find("div", {"class": "comment__message_banned"}):
cmt.append(x['id'][8:]) #
cmt.append(x.find("span", {"class": "user-info__nickname"}).text) #
cmt.append(x.find("span", {"class": "voting-wjt__counter"}).text) #
writer.writerow(cmt)
cmt = []
except requests.exceptions.ConnectionError:
pass
x = int(input())
y = int(input())
for i in range(x, y):
get_doc_by_id(i)
print(i)
habrbase:

« — » habrauthors.csv. . , - , , .
:import requests
from bs4 import BeautifulSoup
import csv
import pandas as pd
def len_checker():
fname = r'files/' + 'habrdata' + '.csv'
with open(fname, "r") as file:
try:
authorsList = len(file.readlines())#
except:
authorsList = 0
return authorsList
def profile_check(nname):
try:
r = requests.head('https://m.habr.com/ru/users/' +nname + '/')
if r.status_code == 404: #
pass
else:
ValUsers = []
r = requests.get('https://m.habr.com/ru/users/' +nname + '/')
soup = BeautifulSoup(r.text, 'html5lib') # instead of html.parser
if not soup.find("div", {"class": "tm-user-card"}):
valKarma = 0
valComments = 0
valArticles = 0
else:
valKarma = soup.find("span", {"class": "tm-votes-score"}).text #
valKarma = valKarma.replace(',','.').strip()
valKarma = float(valKarma)
tempDataBlock = soup.find("div", {"class": "tm-tabs-list__scroll-area"}).text.replace('\n', '') #
mainDataBlock = tempDataBlock.split(' ')
valArticles = mainDataBlock[mainDataBlock.index('')+1]
if valArticles.isdigit() == True:
valArticles = int(valArticles)
else:
valArticles = 0
valComments = mainDataBlock[mainDataBlock.index('')+1]
if valComments.isdigit() == True:
valComments = int(valComments)
else:
valComments = 0
ValUsers.append(valKarma)
ValUsers.append(valComments)
ValUsers.append(valArticles)
except requests.exceptions.ConnectionError:
ValUsers = [0,0,0]
return ValUsers
def get_author_by_nick(x):
finalRow = []
df = pd.DataFrame
colnames=['nick', 'scores']
df = pd.read_csv(r'files\habrauthors.csv', encoding="ANSI", names = colnames, header = None)
df1 = df.loc[x:]
fname = r'files/' + 'habrdata' + '.csv'
with open(fname, "a", newline="") as file:
writer = csv.writer(file)
for row in df1.itertuples(index=True, name='Pandas'):
valName = getattr(row, "nick")
valScore = getattr(row, "scores")
valAll = profile_check(valName)
finalRow.append(valName)
finalRow.append(valScore)
finalRow.append(valAll[0])
finalRow.append(valAll[1])
finalRow.append(valAll[2])
writer.writerow(finalRow)
print(valName)
finalRow = []
n = len_checker()
get_author_by_nick(n)
, , - . , 2001 ? , , , : « (intermediate value).map is not a function». , , 2001 . , — . 250, — .
habrdata : ['nick', 'scores', 'karma', 'comments','articles','regdate'].
.

. , .
114 343 , - . , :

, ,
tabloo.
, . ,
alizar (UPD) 268 ! , - 30 . —
Zelenyikot 1509, - 500. , , .

, , , , . , - . , , — CSV R, SPSS. , — , , ( ). 4235 . . 2866 , , .

3-4 114 , . , . 4652. , , .
: 114 343
< 5: 89 447
.. : 67 890
.. : 4 652
>= 5 : 24 896
, «». "
", . , . , « , » — .
:
: 114 343
<5: 57 223
.. : 26 207
.. : 9 737
>=5 : 57 120
, , , , . , , .. ! — , 90.
, , « », . — >=5 24 ( 900 - 5 ; ). 36 — .
, ? , , 90% , , 4 — . , « ». , , « ». .
« , » .
, 2016 2018 , « ». 90% , 5 . « » 60-70% .
, :
78205 114 343 0. , .
24 896 114 343 . , , , .
. , , — , . , . , , « ».

, !
, , , .
:
- , .
- 1/3 , .
- , ( 10-20 )
, , ?
, . , :
, , … :
— .
—
—
—
, , .
.
, — , .
https://habr.com/ru/post/467875/#comment_20639397
, — , .
,
, ?, . , ( ).
.
1.. : . , — : .
: , , , «» . — . . , . .
. , . — — . — . , , , — ; — , , , . , . — . — .
. . . . . , — .

. .
2..
— . , . , . , . , : , — , , . 2013 , , . ; , , , .
— , , . « », , , . — , . , , .
, «» «», . , , . — , .
, . , , — ? — , ? . , . , — , , .
— . , « », . , , . -, .
, , : , . .
—
. , , . — (), , , . « » — — , .
, . . , — , .
, — . .
https://habr.com/ru/company/habr/blog/437072/#comment_19649328
, , — -, « ». , , .
.
3., . — , -, , .. . , .
—
, . . — « »,
. , « »; , — , ( ) .
. ,
— ,
, , , . , ,
, ,
.
pragmatik,
, ., , - / — ., , . , +100, -10? ? , , - ? .
. ,
. , ,
,
.
. «», « » , .
, . , . «-25», , . — , « ». , , . , , . ! .
« :
: «, , . , , , . — , . .»
, — . andorro : « ».»
https://habr.com/ru/company/habr/blog/437072/#comment_19822200
, . — (.. ). « ». — , . « », . , , IRC, , « » « ». — , .
Episode Three
— ?
— , ,« »?
-, , , , . , , . — , , , , . , , , .
-, . 10 20 , ? 118, - 100, -100 , , , 10.
-, , , (.. ). « » — , : , .
-, , .. « » — - . , , - « ». , ; , — .
-, , « ». . — , — . .
— , . - « , , » - .